【发布时间】:2018-10-26 07:37:37
【问题描述】:
我们正在使用 Twilio 任务路由器,其中禁用了多任务工作区,并且仅将默认任务通道设置为对所有工作人员可用。接受任务预留后,Worker 活动按预期从预留变为忙碌。但最后,当任务状态更新为“已完成”时,Worker 活动并未按预期更改为 Idle,而是保持在 Busy 活动中。这是一个错误还是预期的行为?还是我们缺少任何配置?
【问题讨论】:
我们正在使用 Twilio 任务路由器,其中禁用了多任务工作区,并且仅将默认任务通道设置为对所有工作人员可用。接受任务预留后,Worker 活动按预期从预留变为忙碌。但最后,当任务状态更新为“已完成”时,Worker 活动并未按预期更改为 Idle,而是保持在 Busy 活动中。这是一个错误还是预期的行为?还是我们缺少任何配置?
【问题讨论】:
TaskRouter 团队的 Twilio 工程师在这里!是的,这是单任务处理的预期行为。
您会发现,当分配 Reservation 时,分配给它的 Worker 将移至该 TaskQueue 的“忙碌”活动(或指定要分配的任何活动,可以通过 API @ 更改) 987654321@,或者您可以通过控制台设置它here),如您所述。
但是,当一个任务完成时,在单任务环境中并不能保证 Worker 在那个时刻实际上已经准备好再次开始工作——它们可能已经准备好,但这取决于您的工作流程。因此,在再次将任务分配给他们之前,我们需要确认。这就是为什么 Worker 的 Activity 需要手动设置回“Idle”才能再次开始接收任务的原因。
如果这是您想要的工作流程,最简单的方法之一是在您的EventCallbackUrl 或通过JS SDK 侦听task.completed 事件,然后向“发出活动更新”那时关联的 Worker 的空闲”。
希望这能回答你的问题!
【讨论】:
task.completed事件的链接,其实是一种完成任务的方法,而不是监听事件。所以我想知道在哪里可以找到JS SDK中的task.completed或task.canceled等Tasks相关的事件?