测试Twilio自动驾驶仪的行为和功能时,我注意到以下@ task_creation:
1-Action-> redirect_url(从应用服务器中获取JSON)
2-Action-> SAY-> then-> redirect_url(从App Server获取更多JSON)
我的问题:是否存在任何机制可以防止Dialog在应用服务器“挂起”时“挂起”?我正在考虑某种分离的体系结构,其中助手配置可以自行依赖,并且不能被应用服务器故障/滞后/抛弃。即:自动驾驶仪方面的某种超时控制。
我的测试:
测试1 创建了一个简单的任务,该任务使用redirect_url(HTTP CALLBACK URL)选项而不是ACTIONS BIN @任务创建从App Server中获取JSON。
大约20秒后,助手将继续执行默认的后备任务
{
"actions": [
{
"redirect": "https://www.myExampleAppServer.com/assistant_endpoint/"
}
]}
测试2 与上面相同,但在redirect_url之前添加了SAY。
在从应用服务器收到响应之前,“说”不会“说”。
我降低了sleep(10sec)服务器端以确认该行为,并且其工作原理与我的问题简介中所述相同。对话框挂起10秒钟,然后继续进行硬编码的SAY,接着是从应用服务器收到的操作(JSON)
{
"actions": [
{
"say": "Please Wait while I check with the central offices."
},
{
"redirect": "https://www.myExampleAppServer.com/assistant_endpoint/"
}
]}
我还使用了LISTEN(这也是“阻止”)测试了不同的组合,并且无法取消对助手的阻止。即:在挂起/等待App Server时,找不到调用者可以询问的任何结构:“有人在吗?”并触发任何新的路由。
任何想法都将不胜感激。我知道自动驾驶仪是BETA,但我认为在BETA期间我的问题仍然可以解决。
谢谢!