簡體   English   中英

創建Google PULL隊列有什么問題?

[英]What's wrong with my creation of Google PULL queue?

我是Google App Engine的新手,所以您願意為我澄清一些事情嗎?

我正在創建一個新的PULL隊列,這是我的queue.xml

<queue-entries>
    <queue>
        <name>app-metered-queue</name>
        <mode>pull</mode>
    </queue>
</queue-entries>

在我的服務中,我使用以下代碼實例化Queue實例

private final Queue appMeteredQueue = QueueFactory.getQueue("app-metered-queue");

在其中添加一些數據后:

final List<TaskOptions> taskOptions = new ArrayList<>();
for (final Map.Entry<Long, Map<String, Map<String, Long>>> entry : bundledData.entrySet()) {
       taskOptions.add(TaskOptions.Builder
               .withPayload(mapper.writeValueAsString(entry.getValue()))
               .tag(String.valueOf(entry.getKey()))
       );
   }
appMeteredQueue.add(taskOptions);

但是,不幸的是, .add() method引發了異常:

java.lang.IllegalArgumentException: Only PULL tasks can have a tag.
    at com.google.appengine.api.taskqueue.QueueImpl.fillAddRequest(QueueImpl.java:335)

您能指出我在做什么錯嗎?

queue.xml是不夠的。

您應該在組裝TaskOptions的階段將.withMethod(TaskOptions.Method.PULL)添加到TaskOptions.Builder TaskOptions

暫無
暫無

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

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