文件Target開發人員指南

非同步請求(Java)

最後更新: 2024年7月20日
  • 主題:

建立對象:

  • undefined

說明

伺服器端整合的好處之一,就是您可以使用平行處理功能,在伺服器端利用龐大的頻寬和運算資源。 Target Java SDK支援非同步要求,因此可將有效目標時間減少為零。

支援的方法

方法

CompletableFuture<TargetDeliveryResponse> getOffersAsync(TargetDeliveryRequest request);
CompletableFuture<ResponseStatus> sendNotificationsAsync(TargetDeliveryRequest request);
CompletableFuture<Attributes> getAttributesAsync(TargetDeliveryRequest targetRequest, String ...mboxes);

範例

範例Spring應用程式控制器可能如下所示:

範例控制器

@RestController
public class TargetRestController {

    @Autowired
    private TargetClient targetJavaClient;

    @GetMapping("/mboxTargetOnlyAsync")
        public TargetDeliveryResponse mboxTargetOnlyAsync(
                @RequestParam(name = "mbox", defaultValue = "server-side-mbox") String mbox,
                HttpServletRequest request, HttpServletResponse response) {
            ExecuteRequest executeRequest = new ExecuteRequest()
                    .mboxes(getMboxRequests(mbox));

            TargetDeliveryRequest targetDeliveryRequest = TargetDeliveryRequest.builder()
                    .context(getContext(request))
                    .execute(executeRequest)
                    .cookies(getTargetCookies(request.getCookies()))
                    .build();
            CompletableFuture<TargetDeliveryResponse> targetResponseAsync =
                    targetJavaClient.getOffersAsync(targetDeliveryRequest);
            targetResponseAsync.thenAccept(tr -> setCookies(tr.getCookies(), response));
            simulateIO();
            TargetDeliveryResponse targetResponse = targetResponseAsync.join();
            return targetResponse;
        }

    /**
     * Function for simulating network calls like other microservices and database calls
     */
    private void simulateIO() {
        try {
            Thread.sleep(200L);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

}

此範例假設您已將SDK初始化為spring bean,且您有可用的公用程式方法。

Target要求是在simulateIO之前觸發,且在執行時,目標結果也應準備就緒。 即使不是如此,在大多數情況下您還是可以節省大量成本。

recommendation-more-help
6906415f-169c-422b-89d3-7118e147c4e3