Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #22527

Concurrency and restarting tasks

X-Received by 10.224.208.9 with SMTP id ga9mr1052371qab.8.1361889148255; Tue, 26 Feb 2013 06:32:28 -0800 (PST)
X-Received by 10.49.75.195 with SMTP id e3mr1349380qew.24.1361889148220; Tue, 26 Feb 2013 06:32:28 -0800 (PST)
Path csiph.com!newsfeed.hal-mli.net!feeder3.hal-mli.net!newsfeed.hal-mli.net!feeder2.hal-mli.net!news.glorb.com!t2no5173872qal.0!news-out.google.com!t2ni1780qaj.0!nntp.google.com!dd2no3260746qab.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups comp.lang.java.programmer
Date Tue, 26 Feb 2013 06:32:28 -0800 (PST)
Complaints-To groups-abuse@google.com
Injection-Info glegroupsg2000goo.googlegroups.com; posting-host=137.100.97.30; posting-account=LYoTOgoAAABkuGLLOGXg_LiQpwWAp52F
NNTP-Posting-Host 137.100.97.30
User-Agent G2/1.0
MIME-Version 1.0
Message-ID <7024d5a0-10c2-41db-bd72-85d03c3feae6@googlegroups.com> (permalink)
Subject Concurrency and restarting tasks
From me 2 <winona_whitener@yahoo.com>
Injection-Date Tue, 26 Feb 2013 14:32:28 +0000
Content-Type text/plain; charset=ISO-8859-1
Content-Transfer-Encoding quoted-printable
Xref csiph.com comp.lang.java.programmer:22527

Show key headers only | View raw


Hey,

I have an interesting (to me at least!) puzzle.

I have a task that can take a long time that I need to run periodically.  I want to be able to cancel the execution of that task.  I've been looking at the Scheduler and Future objects, but I haven't seen how to cleanly stop, wait for a couple of seconds and restart the task on schedule.  And my task won't always take X seconds--sometimes it will generate exceptions or take longer or shorter or any number of other things.

Right now I have:

<code>
		final Runnable beeper = new Runnable()
		{
			public void run()
			{
				System.out.println("beep -- doing long task");
				//doing long task
				System.out.println("finished doing long task");
			}
		};

			ScheduledFuture<?> beeperHandle;
			try {
				beeperHandle = scheduler.scheduleAtFixedRate(	beeper, 1, 2, SECONDS);
				beeperHandle.get(3, SECONDS);
			} catch (TimeoutException te) {
				System.out.println("Canceled due to timeout");
			} catch (InterruptedException | ExecutionException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
</code>

There are plenty of examples that show the first steps--setting up the schedule and canceling.  Restarting apparently is not as common.

Any ideas would be fantastic.
Thank you,
Me

Back to comp.lang.java.programmer | Previous | NextNext in thread | Find similar | Unroll thread


Thread

Concurrency and restarting tasks me 2 <winona_whitener@yahoo.com> - 2013-02-26 06:32 -0800
  Re: Concurrency and restarting tasks Roedy Green <see_website@mindprod.com.invalid> - 2013-02-26 06:47 -0800
  Re: Concurrency and restarting tasks Joerg Meier <joergmmeier@arcor.de> - 2013-02-26 15:58 +0100
    Re: Concurrency and restarting tasks me 2 <winona_whitener@yahoo.com> - 2013-02-26 08:09 -0800
      Re: Concurrency and restarting tasks Joerg Meier <joergmmeier@arcor.de> - 2013-02-26 18:14 +0100

csiph-web