Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #22527
| 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 | Next — Next in thread | Find similar | Unroll 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