如何将Twilio已分配任务TTL从默认24小时延长至3天?设置Timeout无效
解决Twilio已分配任务24小时后被删除的问题
你设置的timeout参数仅控制任务在待分配(pending)状态下的等待超时时间,对已分配(assigned)状态的任务存活时长无影响,这就是之前配置无效的原因。以下是可行方案:
设置任务
time_to_live参数:
创建任务时(Studio Flow或API),添加time_to_live参数指定任务最大存活秒数(默认86400秒/24小时)。比如设为1209600(14天),无论任务状态如何,都会在指定时间后才被删除。
调整你的Interactions API代码,替换无效的timeout逻辑(保留原timeout控制pending状态超时,按需调整):await client.flexApi.v1 .interaction(attributes.flexInteractionSid) .channels(attributes.flexInteractionChannelSid) .invites.create({ routing: { properties: { workspace_sid: "WSXXXXXX", workflow_sid: workflow_sid, queue_sid: task_queue_sid, worker_sid: known_worker_sid, task_channel_unique_name: 'chat', attributes: { ...attributes }, time_to_live: 1209600, // 控制任务整体存活时长 timeout: 3600 // 控制待分配状态下的等待超时,按需修改 }, }, });调整Flex任务保留策略:
登录Twilio控制台,进入Flex > 设置 > 任务管理,找到「任务保留」选项,延长已完成/已终止任务的保留天数。若任务会被自动标记为已完成(如聊天会话结束后),这个设置能避免任务被快速清理。禁用聊天任务自动完成:
针对聊天类任务,在Flex聊天频道配置中关闭「聊天关闭时自动完成任务」选项,让任务保持已分配状态,直到手动标记完成。定期更新任务状态:
若以上方案不适用,可通过TaskRouter API定期调用「更新任务」接口,将任务状态维持为assigned,避免系统自动清理。比如每日调用一次更新接口,重置任务生命周期计时器。
内容的提问来源于stack exchange,提问作者mossplix
相关产品推荐
相关产品推荐

