ScheduledExecutorService call shutdown for infinite scheduling
I am using a ScheduledExecutorService that would be scheduled to run every minute infinitely
Could some one tell me when to invoke the shutdown on the ScheduledExecutorService
I have already looked into Guava MoreExecutors. This does not work as I need to block the main thread to keep the other threads running continuously
Use case
I have a task that constantly monitors a system to check for latency/failures.
I need to run this task periodically and configure Cloudwatch alarms based on it. Ideally, I would want the task to continue executing even when there is a latency spike, because the alarm would have been triggered
So, I am using a ScheduledExecutorService to periodically schedule the tasks.
I want to know the ideal place where I would call shutdown() on the executor service
java executorservice scheduledexecutorservice
add a comment |
I am using a ScheduledExecutorService that would be scheduled to run every minute infinitely
Could some one tell me when to invoke the shutdown on the ScheduledExecutorService
I have already looked into Guava MoreExecutors. This does not work as I need to block the main thread to keep the other threads running continuously
Use case
I have a task that constantly monitors a system to check for latency/failures.
I need to run this task periodically and configure Cloudwatch alarms based on it. Ideally, I would want the task to continue executing even when there is a latency spike, because the alarm would have been triggered
So, I am using a ScheduledExecutorService to periodically schedule the tasks.
I want to know the ideal place where I would call shutdown() on the executor service
java executorservice scheduledexecutorservice
i will recommended to explain use case
– Deadpool
Nov 21 '18 at 22:41
@Deadpool I have updated the use case
– user3451476
Nov 24 '18 at 1:24
add a comment |
I am using a ScheduledExecutorService that would be scheduled to run every minute infinitely
Could some one tell me when to invoke the shutdown on the ScheduledExecutorService
I have already looked into Guava MoreExecutors. This does not work as I need to block the main thread to keep the other threads running continuously
Use case
I have a task that constantly monitors a system to check for latency/failures.
I need to run this task periodically and configure Cloudwatch alarms based on it. Ideally, I would want the task to continue executing even when there is a latency spike, because the alarm would have been triggered
So, I am using a ScheduledExecutorService to periodically schedule the tasks.
I want to know the ideal place where I would call shutdown() on the executor service
java executorservice scheduledexecutorservice
I am using a ScheduledExecutorService that would be scheduled to run every minute infinitely
Could some one tell me when to invoke the shutdown on the ScheduledExecutorService
I have already looked into Guava MoreExecutors. This does not work as I need to block the main thread to keep the other threads running continuously
Use case
I have a task that constantly monitors a system to check for latency/failures.
I need to run this task periodically and configure Cloudwatch alarms based on it. Ideally, I would want the task to continue executing even when there is a latency spike, because the alarm would have been triggered
So, I am using a ScheduledExecutorService to periodically schedule the tasks.
I want to know the ideal place where I would call shutdown() on the executor service
java executorservice scheduledexecutorservice
java executorservice scheduledexecutorservice
edited Nov 24 '18 at 1:23
user3451476
asked Nov 21 '18 at 6:04
user3451476user3451476
134212
134212
i will recommended to explain use case
– Deadpool
Nov 21 '18 at 22:41
@Deadpool I have updated the use case
– user3451476
Nov 24 '18 at 1:24
add a comment |
i will recommended to explain use case
– Deadpool
Nov 21 '18 at 22:41
@Deadpool I have updated the use case
– user3451476
Nov 24 '18 at 1:24
i will recommended to explain use case
– Deadpool
Nov 21 '18 at 22:41
i will recommended to explain use case
– Deadpool
Nov 21 '18 at 22:41
@Deadpool I have updated the use case
– user3451476
Nov 24 '18 at 1:24
@Deadpool I have updated the use case
– user3451476
Nov 24 '18 at 1:24
add a comment |
1 Answer
1
active
oldest
votes
Currently, the factory methods in Executors
return an instance of ScheduledThreadPoolExecutor
1. By default, a ScheduledThreadPoolExecutor
will not continue executing periodic tasks after it has been shutdown. You can configure this via setContinueExistingPeriodicTasksAfterShutdownPolicy
.
Sets the policy on whether to continue executing existing periodic tasks even when this executor has been
shutdown
. In this case, executions will continue untilshutdownNow
or the policy is set tofalse
when already shutdown. This value is by defaultfalse
.
As it's really an implementation detail what implementation of ScheduledExecutorService
the factory methods of Executors
return, it's probably better to create a ScheduledThreadPoolExecutor
directly.
ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(1);
executor.setContinueExistingPeriodicTasksAfterShutdownPolicy(true);
executor.scheduleAtFixedRate(() -> System.out.println("Hello, World!"), 0L, 1L, TimeUnit.SECONDS);
executor.shutdown();
Note, this currently configures the ScheduledThreadPoolExecutor
to use non-daemon threads. Even though shutdown
was called, if the periodic tasks aren't cancelled they will keep the JVM alive. Use a custom ThreadFactory
if you want to use daemon threads.
1. The newSingleThreadScheduledExecutor
methods return a non-configurable wrapper that delegates to a ScheduledThreadPoolExecutor
.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53406113%2fscheduledexecutorservice-call-shutdown-for-infinite-scheduling%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Currently, the factory methods in Executors
return an instance of ScheduledThreadPoolExecutor
1. By default, a ScheduledThreadPoolExecutor
will not continue executing periodic tasks after it has been shutdown. You can configure this via setContinueExistingPeriodicTasksAfterShutdownPolicy
.
Sets the policy on whether to continue executing existing periodic tasks even when this executor has been
shutdown
. In this case, executions will continue untilshutdownNow
or the policy is set tofalse
when already shutdown. This value is by defaultfalse
.
As it's really an implementation detail what implementation of ScheduledExecutorService
the factory methods of Executors
return, it's probably better to create a ScheduledThreadPoolExecutor
directly.
ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(1);
executor.setContinueExistingPeriodicTasksAfterShutdownPolicy(true);
executor.scheduleAtFixedRate(() -> System.out.println("Hello, World!"), 0L, 1L, TimeUnit.SECONDS);
executor.shutdown();
Note, this currently configures the ScheduledThreadPoolExecutor
to use non-daemon threads. Even though shutdown
was called, if the periodic tasks aren't cancelled they will keep the JVM alive. Use a custom ThreadFactory
if you want to use daemon threads.
1. The newSingleThreadScheduledExecutor
methods return a non-configurable wrapper that delegates to a ScheduledThreadPoolExecutor
.
add a comment |
Currently, the factory methods in Executors
return an instance of ScheduledThreadPoolExecutor
1. By default, a ScheduledThreadPoolExecutor
will not continue executing periodic tasks after it has been shutdown. You can configure this via setContinueExistingPeriodicTasksAfterShutdownPolicy
.
Sets the policy on whether to continue executing existing periodic tasks even when this executor has been
shutdown
. In this case, executions will continue untilshutdownNow
or the policy is set tofalse
when already shutdown. This value is by defaultfalse
.
As it's really an implementation detail what implementation of ScheduledExecutorService
the factory methods of Executors
return, it's probably better to create a ScheduledThreadPoolExecutor
directly.
ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(1);
executor.setContinueExistingPeriodicTasksAfterShutdownPolicy(true);
executor.scheduleAtFixedRate(() -> System.out.println("Hello, World!"), 0L, 1L, TimeUnit.SECONDS);
executor.shutdown();
Note, this currently configures the ScheduledThreadPoolExecutor
to use non-daemon threads. Even though shutdown
was called, if the periodic tasks aren't cancelled they will keep the JVM alive. Use a custom ThreadFactory
if you want to use daemon threads.
1. The newSingleThreadScheduledExecutor
methods return a non-configurable wrapper that delegates to a ScheduledThreadPoolExecutor
.
add a comment |
Currently, the factory methods in Executors
return an instance of ScheduledThreadPoolExecutor
1. By default, a ScheduledThreadPoolExecutor
will not continue executing periodic tasks after it has been shutdown. You can configure this via setContinueExistingPeriodicTasksAfterShutdownPolicy
.
Sets the policy on whether to continue executing existing periodic tasks even when this executor has been
shutdown
. In this case, executions will continue untilshutdownNow
or the policy is set tofalse
when already shutdown. This value is by defaultfalse
.
As it's really an implementation detail what implementation of ScheduledExecutorService
the factory methods of Executors
return, it's probably better to create a ScheduledThreadPoolExecutor
directly.
ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(1);
executor.setContinueExistingPeriodicTasksAfterShutdownPolicy(true);
executor.scheduleAtFixedRate(() -> System.out.println("Hello, World!"), 0L, 1L, TimeUnit.SECONDS);
executor.shutdown();
Note, this currently configures the ScheduledThreadPoolExecutor
to use non-daemon threads. Even though shutdown
was called, if the periodic tasks aren't cancelled they will keep the JVM alive. Use a custom ThreadFactory
if you want to use daemon threads.
1. The newSingleThreadScheduledExecutor
methods return a non-configurable wrapper that delegates to a ScheduledThreadPoolExecutor
.
Currently, the factory methods in Executors
return an instance of ScheduledThreadPoolExecutor
1. By default, a ScheduledThreadPoolExecutor
will not continue executing periodic tasks after it has been shutdown. You can configure this via setContinueExistingPeriodicTasksAfterShutdownPolicy
.
Sets the policy on whether to continue executing existing periodic tasks even when this executor has been
shutdown
. In this case, executions will continue untilshutdownNow
or the policy is set tofalse
when already shutdown. This value is by defaultfalse
.
As it's really an implementation detail what implementation of ScheduledExecutorService
the factory methods of Executors
return, it's probably better to create a ScheduledThreadPoolExecutor
directly.
ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(1);
executor.setContinueExistingPeriodicTasksAfterShutdownPolicy(true);
executor.scheduleAtFixedRate(() -> System.out.println("Hello, World!"), 0L, 1L, TimeUnit.SECONDS);
executor.shutdown();
Note, this currently configures the ScheduledThreadPoolExecutor
to use non-daemon threads. Even though shutdown
was called, if the periodic tasks aren't cancelled they will keep the JVM alive. Use a custom ThreadFactory
if you want to use daemon threads.
1. The newSingleThreadScheduledExecutor
methods return a non-configurable wrapper that delegates to a ScheduledThreadPoolExecutor
.
edited Nov 21 '18 at 21:52
answered Nov 21 '18 at 21:44
SlawSlaw
7,94831033
7,94831033
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53406113%2fscheduledexecutorservice-call-shutdown-for-infinite-scheduling%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
i will recommended to explain use case
– Deadpool
Nov 21 '18 at 22:41
@Deadpool I have updated the use case
– user3451476
Nov 24 '18 at 1:24