Asynchronous process to consume items from queue and send them to external API









up vote
0
down vote

favorite












I have a requirement: taking items from a queue and send them to an external API. And keep doing that process without waiting for the response from external API. For now, I let the class implements Runnable and in the run method I dequeue the items and send them. Then I use Excutor.newCachedThreadPool() to handle that process. I am not sure it is right or not. Any suggestion or correction?










share|improve this question





















  • Also, have a question about which one is better to implement this, Runnable or Callable?
    – HenlenLee
    Nov 9 at 21:12










  • Callable can return Object and can throw exception whereas Runnable cant so it basically depends on your requirement on what to use.
    – Rakesh
    Nov 9 at 21:58










  • Using Executor makes sense when you have many small tasks. But you have a single long task, so it is logical to run it in a dedicated thread, rather than submit to an executor.
    – Alexei Kaigorodov
    Nov 10 at 4:00














up vote
0
down vote

favorite












I have a requirement: taking items from a queue and send them to an external API. And keep doing that process without waiting for the response from external API. For now, I let the class implements Runnable and in the run method I dequeue the items and send them. Then I use Excutor.newCachedThreadPool() to handle that process. I am not sure it is right or not. Any suggestion or correction?










share|improve this question





















  • Also, have a question about which one is better to implement this, Runnable or Callable?
    – HenlenLee
    Nov 9 at 21:12










  • Callable can return Object and can throw exception whereas Runnable cant so it basically depends on your requirement on what to use.
    – Rakesh
    Nov 9 at 21:58










  • Using Executor makes sense when you have many small tasks. But you have a single long task, so it is logical to run it in a dedicated thread, rather than submit to an executor.
    – Alexei Kaigorodov
    Nov 10 at 4:00












up vote
0
down vote

favorite









up vote
0
down vote

favorite











I have a requirement: taking items from a queue and send them to an external API. And keep doing that process without waiting for the response from external API. For now, I let the class implements Runnable and in the run method I dequeue the items and send them. Then I use Excutor.newCachedThreadPool() to handle that process. I am not sure it is right or not. Any suggestion or correction?










share|improve this question













I have a requirement: taking items from a queue and send them to an external API. And keep doing that process without waiting for the response from external API. For now, I let the class implements Runnable and in the run method I dequeue the items and send them. Then I use Excutor.newCachedThreadPool() to handle that process. I am not sure it is right or not. Any suggestion or correction?







java multithreading asynchronous queue






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 9 at 21:07









HenlenLee

697




697











  • Also, have a question about which one is better to implement this, Runnable or Callable?
    – HenlenLee
    Nov 9 at 21:12










  • Callable can return Object and can throw exception whereas Runnable cant so it basically depends on your requirement on what to use.
    – Rakesh
    Nov 9 at 21:58










  • Using Executor makes sense when you have many small tasks. But you have a single long task, so it is logical to run it in a dedicated thread, rather than submit to an executor.
    – Alexei Kaigorodov
    Nov 10 at 4:00
















  • Also, have a question about which one is better to implement this, Runnable or Callable?
    – HenlenLee
    Nov 9 at 21:12










  • Callable can return Object and can throw exception whereas Runnable cant so it basically depends on your requirement on what to use.
    – Rakesh
    Nov 9 at 21:58










  • Using Executor makes sense when you have many small tasks. But you have a single long task, so it is logical to run it in a dedicated thread, rather than submit to an executor.
    – Alexei Kaigorodov
    Nov 10 at 4:00















Also, have a question about which one is better to implement this, Runnable or Callable?
– HenlenLee
Nov 9 at 21:12




Also, have a question about which one is better to implement this, Runnable or Callable?
– HenlenLee
Nov 9 at 21:12












Callable can return Object and can throw exception whereas Runnable cant so it basically depends on your requirement on what to use.
– Rakesh
Nov 9 at 21:58




Callable can return Object and can throw exception whereas Runnable cant so it basically depends on your requirement on what to use.
– Rakesh
Nov 9 at 21:58












Using Executor makes sense when you have many small tasks. But you have a single long task, so it is logical to run it in a dedicated thread, rather than submit to an executor.
– Alexei Kaigorodov
Nov 10 at 4:00




Using Executor makes sense when you have many small tasks. But you have a single long task, so it is logical to run it in a dedicated thread, rather than submit to an executor.
– Alexei Kaigorodov
Nov 10 at 4:00

















active

oldest

votes











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',
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
);



);













 

draft saved


draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53233279%2fasynchronous-process-to-consume-items-from-queue-and-send-them-to-external-api%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown






























active

oldest

votes













active

oldest

votes









active

oldest

votes






active

oldest

votes















 

draft saved


draft discarded















































 


draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53233279%2fasynchronous-process-to-consume-items-from-queue-and-send-them-to-external-api%23new-answer', 'question_page');

);

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







Popular posts from this blog

Use pre created SQLite database for Android project in kotlin

Darth Vader #20

Ondo