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


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

Re: How to send a onetime scheduled task to executorService that has a repeptitive task ongoing

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


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