You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取特定TaskRouter队列中无任务分配的坐席数量?

获取Twilio TaskRouter特定队列中无任务分配的坐席数量

TaskQueue Statistics API返回的activity_statistics仅按坐席状态统计人数,无法区分同状态下是否有任务分配。要获取特定队列中无论状态、当前无任务分配的坐席数量,可通过以下方式实现:

方式一:通过TaskQueue Workers API遍历统计

  1. 调用TaskRouter的TaskQueue Workers接口,获取目标队列下的所有坐席(Worker)列表
  2. 对每个Worker,通过以下字段判断是否无任务分配:
    • current_task_sid:为空表示当前没有正在处理的任务
    • reservation_count:为0表示没有待确认的保留任务
  3. 统计同时满足上述两个条件的Worker数量

示例逻辑(伪代码):

# 假设已初始化Twilio客户端
target_task_queue_sid = "WQXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
workers = client.taskrouter.workspaces("WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") \
                .task_queues(target_task_queue_sid) \
                .workers.list()

taskless_worker_count = 0
for worker in workers:
    if worker.current_task_sid is None and worker.reservation_count == 0:
        taskless_worker_count += 1

print(f"无任务分配的坐席数量:{taskless_worker_count}")

方式二:通过Workspace Workers API筛选统计

如果需要更灵活的筛选条件,可直接调用Workspace Workers接口,通过task_queue_sid参数过滤出目标队列的坐席,再按同样的任务状态条件统计:

workers = client.taskrouter.workspaces("WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") \
                .workers.list(task_queue_sid=target_task_queue_sid)

# 后续统计逻辑同方式一

优化建议

如果仪表盘需要实时更新统计数据,频繁遍历Worker API可能带来性能开销,建议结合Twilio TaskRouter的**实时事件(Real-time Events)**或Webhooks:

  • 监听Worker的任务分配、完成、取消等事件
  • 在本地维护缓存,实时更新每个Worker的任务状态
  • 直接从缓存中统计目标队列的无任务坐席数量,减少API调用频次

内容的提问来源于stack exchange,提问作者SO-user

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 10:05:26