Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #39738
| Path | csiph.com!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail |
|---|---|
| From | Stanimir Stamenkov <s7an10@netscape.net> |
| Newsgroups | comp.lang.java.programmer |
| Subject | Re: How to send a onetime scheduled task to executorService that has a repeptitive task ongoing |
| Date | Thu, 10 Mar 2022 22:16:09 +0200 |
| Organization | A noiseless patient Spider |
| Lines | 80 |
| Message-ID | <t0dma9$fu4$1@dont-email.me> (permalink) |
| References | <e53511d0-8d10-4420-816e-b027569a85e5n@googlegroups.com> |
| Mime-Version | 1.0 |
| Content-Type | text/plain; charset=UTF-8; format=flowed |
| Content-Transfer-Encoding | 8bit |
| Injection-Date | Thu, 10 Mar 2022 20:16:09 -0000 (UTC) |
| Injection-Info | reader02.eternal-september.org; posting-host="9dce16ea476e09591008f7342e1364dd"; logging-data="16324"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX183374qE4FED9hTSQL3Z+iY" |
| User-Agent | Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 SeaMonkey/2.53.11 |
| Cancel-Lock | sha1:i+edCRxcFcfpxH8WTl7RSj5YAI4= |
| In-Reply-To | <e53511d0-8d10-4420-816e-b027569a85e5n@googlegroups.com> |
| X-Face | (5^k'[FumQ)D<K'|!m[XIPQMS<@?TEycd`Km]m}j3#aOh6s=*7pqVp9T7Ru-9J1NJ?j64h( vkoM85W+lY%wgItKb-w3OV/yK:?0GO])wfroz}>/*_,+2"Ax+MLyw-[=}5`U9T`X4>1ky(A:/OBmW0 N~qm3*Yo0^iugH;XTH;'lGWv}@;U!P\.:7v;~BU;X<pmnyTVy+VuYy_""nw6{`Q?_;Q_y.q2zQ=>mX wB`d4DX><96a<oQ[>T}f6v}i7oU}bzwjzX`q.yUbgV:+=Zt<A"Kb?P8-0t2N92 |
| Autocrypt | addr=s7an10@netscape.net; keydata= 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 bpzpzw== |
| Openpgp | preference=signencrypt |
| Xref | csiph.com comp.lang.java.programmer:39738 |
Show key headers only | View raw
Thu, 10 Mar 2022 04:32:40 -0800 (PST), /mike/:
> This service will send a message every 10 seconds to a server and if we get a response then we are ok and connection is considered ok.
>
> future = scheduledTaskExecutor.newScheduledTask(keepAlive, 0, properties.getKeepAliveTime(),
> TimeUnit.SECONDS);
>
> Note: newScheduledTask() calls ScheduledFuture<?> future = executorService.scheduleAtFixedRate(runnable, delay, period, timeUnit);
>
> However we also have a method where we "instantly" want to find out if we are connected to the server.
>
> ScheduledFuture<?> scheduledTaskOnce = scheduledTaskExecutor.newScheduledTaskOnce(keepAlive, 10,
> TimeUnit.MILLISECONDS);
> Object object = scheduledTaskOnce.get();
>
> Note: newScheduledTaskOnce() calls ScheduledFuture<?> future = executorService.schedule(runnable, delay, timeUnit);
>
> Q1: The KeepAlive hangs when doing it as a onetime task in the same executor. Any ideas why?
> Q2: How will a onetime task in same scheduledExecutor be handled when we have a repeatedly ongoing?
You haven't specified what is your ScheduledExecutorService
configuration/implementation.
I'm using the following in a real world project:
import java.util.concurrent.*;
public static void main(String[] args) throws Exception {
ScheduledExecutorService executor =
Executors.newSingleThreadScheduledExecutor();
executor.scheduleAtFixedRate(slowTask("Regular", 10),
0, 100, TimeUnit.MILLISECONDS);
ScheduledFuture<?> oneOff = executor
.schedule(slowTask("One-off with delay", 50),
100, TimeUnit.MILLISECONDS);
oneOff.get();
executor.execute(slowTask("Immediate one-off", 100));
Future<?> oneOff2 = executor
.submit(slowTask("Immediate one-off with result", 100));
oneOff2.get();
Thread.sleep(50);
executor.shutdown();
}
static Runnable slowTask(String name, long timeMillis) {
return () -> {
System.out.append(name).print("...");
try {
Thread.sleep(timeMillis);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
throw new IllegalStateException(e);
}
System.out.println(" done.");
};
}
That is a single-thread scheduled executor [1] to serialize both:
* A task scheduled to run at regular intervals; and
* One-off executions.
> Q1: The KeepAlive hangs when doing it as a onetime task in the same executor. Any ideas why?
> Q2: How will a onetime task in same scheduledExecutor be handled when we have a repeatedly ongoing?
One of my uses actually triggers one-off task at the end of the
scheduled task, also – not just externally submitted. Not sure what
"onetime task in the same executor" in you case means.
[1]
https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Executors.html#newSingleThreadScheduledExecutor--
--
Stanimir
Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Find similar | Unroll thread
How to send a onetime scheduled task to executorService that has a repeptitive task ongoing mike <mikaelpetterson@hotmail.com> - 2022-03-10 04:32 -0800 Re: How to send a onetime scheduled task to executorService that has a repeptitive task ongoing "Jeffrey H. Coffield" <jeffrey@digitalsynergyinc.com> - 2022-03-10 07:21 -0800 Re: How to send a onetime scheduled task to executorService that has a repeptitive task ongoing Stanimir Stamenkov <s7an10@netscape.net> - 2022-03-10 22:16 +0200
csiph-web