我正在尝试在 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: []
在此之后,当我签入管理控制台时,任务不再存在。我想知道是否有人以前看过这个或者我做错了什么?请指教