gpt4 book ai didi

java - 拉队列leaseTasks不返回任何TaskHandles

转载 作者:太空宇宙 更新时间:2023-11-04 14:24:48 24 4
gpt4 key购买 nike

我正在尝试使用Pull Queue在 Google AppEngine 上,设置如下

  • 用户将通过我的应用程序 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: []

此后,当我 checkin 管理控制台时,任务不再存在。我想知道是否有人以前见过这个或者我做错了什么?请指教

最佳答案

好的...经过几次尝试和错误尝试,我发现了问题

以下是我的queue.xml上述队列的片段。

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

问题在 <retry-parameters> 之后得到解决已从上面的代码片段中删除。我试图从推送队列转换这个队列,所以我忽略了删除它,因为 Java Task Queue Configuration没有提到这个参数仅适用于Push Queue

希望这对某人有帮助:)

关于java - 拉队列leaseTasks不返回任何TaskHandles,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26792680/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com