簡體   English   中英

如何以通用方式在方法調用中實現等待

[英]How to implement wait in a method call in generic way

我正在嘗試為第三方API實現通用解決方案(以異步方式工作),但我不知道如何以同步方式實現對其余應用程序的調用。 基本上,API就像接受請求一樣工作,對其進行處理,然后在完成時給出響應,但同時也可以接收其他請求。 因此,我將API響應方法放在線程中,以便通過按時間間隔調用api響應方法來連續監視是否有響應。

API具有接受請求的接口,例如:

public void api_execute(string UUID,String request);

API響應對象:

public APIReponse
{
private String UUID;
private String response_string
 // Getter setter
}

我想在此API的頂部編寫一個包裝,其中有一個方法,以便應用程序的不同對象使用此包裝發送請求和接收響應。 因此,UUID將由該包裝器類創建,但我沒有得到如何等待調用者對象,直到我收到一些響應,並且還區分出哪個調用者發送了哪個請求。 我在這里通過使用觀察者模式進行思考,但似乎不適合這種情況。 有人可以給我提示我如何實現這一點。

您使用線程池創建異步任務執行器

ExecutorService threadpool = Executors.newFixedThreadPool(3);

        public Future<APIReponse> submitTask(APIRequest request) throws InterruptedException, ExecutionException {
            System.out.println("Submitting Task ...");
            Future<APIReponse> future = threadpool.submit(new Callable<APIReponse>() {

                @Override
                public APIReponse call() throws Exception {
                    api_execute(request,UUID);

                    return new APIReponse();
                }

            });
            return future;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM