最近我注意到,当我重新安排延期任务时,任务会产生两个或更多完全相同的任务。我刚刚有一份工作产生了4个相同的任务。我们使用以下代码重新安排我们的任务:
Queue q = null;
if (queueName == null)
q = QueueFactory.getDefaultQueue();
else
q = QueueFactory.getQueue(queueName);
TaskOptions to = TaskOptions.Builder.withPayload(this);
q.add(to);
这段代码非常简单,但它给我们的应用程序带来了很多问题。我们甚至尝试过为这个任务命名,例如:
to.taskName(TASK_NAME);
防止重复任务产生无效。是否有其他人看过这个问题或有解决方案来防止重复。
答案 0 :(得分:0)
任务队列可以多次执行相同的任务。这是预期的行为。
您的任务必须是幂等的,才能使用任务队列。即如果它运行多次,它必须表现得好像它运行一次。否则,您无法使用任务队列。