簡體   English   中英

Pull Queue leaseTasks不返回任何TaskHandles

[英]Pull Queue leaseTasks is not returning any TaskHandles

我正在嘗試在Google AppEngine上使用Pull Queue ,這是設置

  • 用戶將通過我的應用程序REST API創建任務
    • 然后將任務添加到“ TEST_QUEUE ”(模式:PULL)
  • Cron作業將檢查QueueStatistics以查看是否有任何待處理的任務,並計算要啟動的工作程序數並將工作程序配置(租賃,要提取的任務數等) 送到“ 推送隊列”中
  • 在Push Queue處理程序中,我正在進行一些完整性檢查並發出leaseTasks Java API調用
    • 這是問題所在,此調用始終返回TaskHandles的空數組。

我正在AppEngine基礎設施上對此進行測試,只有1個處理程序正在嘗試leaseTasks

這就是我添加任務的方式

Queue queue = QueueFactory.getQueue("TEST_QUEUE");
TaskOptions options = TaskOptions.Builder.withMethod(TaskOptions.Method.PULL)
                                 .payload("Test");

這就是我試圖獲取任務的方式

Queue queue = QueueFactory.getQueue("TEST_QUEUE");
Logger.info("Task Count (Before): " + queue.fetchStatistics().getNumTasks());
List<TaskHandle> handles = queue.leaseTasks(300, TimeUnit.SECONDS, 100);
Logger.info("Task Count (After): " + queue.fetchStatistics().getNumTasks());
Logger.info("Handles: " + handles);

我在“ TEST_QUEUE”中有3個任務(也已通過管理控制台進行了確認)

Task Count (Before): 3
Task Count (After): 3
Handles: []

此后,當我在管理控制台中簽入時,任務將不再存在。 我想知道是否有人以前見過這個,還是我做錯了什么? 請指教

好吧...經過幾次嘗試和錯誤嘗試后,我發現了問題

以下是我上面提到的隊列的queue.xml代碼段。

<queue>
    <name>TEST_QUEUE</name>
    <mode>pull</mode>
    <retry-parameters>
        <task-retry-limit>0</task-retry-limit>
    </retry-parameters>
</queue>

從上述片段中刪除<retry-parameters>后,此問題已修復。 我試圖從Push隊列轉換此隊列,所以我忽略了刪除它,因為Java Task Queue Configuration並未提及此參數僅適用於Push Queue

希望這可以幫助某人:)

暫無
暫無

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

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