Dialogflow - 在给定延迟后添加 followupEvent
Dialogflow - Add followupEvent after a given delay
我正在尝试在意图处理程序中添加一系列响应并设置 20 分钟的计时器,这将触发(在其结束时)后续事件。
所以这是我尝试过的:
agent.add(response_1);
//...
agent.add(response_n);
setTimeout(() => {
console.log("Setting follow up event")
agent.setFollowupEvent('20_MINUTES_PASSED');
}, 1200000);
即使显示了日志,我的函数执行也先于它停止了。我检查了日志,我看到消息 "Function execution took 26 ms, finished with status code: 200" 显示在 "Setting follow up event".
之前
我知道每个函数都有 3-5 秒的超时时间,我知道这就是函数完成执行的原因,但我不知道如何在 20 分钟后触发该事件...
这个想法有两个问题:云功能并不意味着 运行 这么久,您将不得不为此使用真实服务器或一些调度服务。但是,无论如何,Dialogflow 不允许您这样做,webhook 请求会在几秒钟后超时。如果到那时您还没有发送响应,代理将告诉用户您的服务不可用。您也不能在没有用户明确请求的情况下启动新会话,大概是因为开发人员会很快滥用它来发送垃圾邮件等。因此无法在 20 分钟后触发事件。
最接近您要查找的可能是 push notifications,但与后续事件相比它们非常有限。
我正在尝试在意图处理程序中添加一系列响应并设置 20 分钟的计时器,这将触发(在其结束时)后续事件。
所以这是我尝试过的:
agent.add(response_1);
//...
agent.add(response_n);
setTimeout(() => {
console.log("Setting follow up event")
agent.setFollowupEvent('20_MINUTES_PASSED');
}, 1200000);
即使显示了日志,我的函数执行也先于它停止了。我检查了日志,我看到消息 "Function execution took 26 ms, finished with status code: 200" 显示在 "Setting follow up event".
之前我知道每个函数都有 3-5 秒的超时时间,我知道这就是函数完成执行的原因,但我不知道如何在 20 分钟后触发该事件...
这个想法有两个问题:云功能并不意味着 运行 这么久,您将不得不为此使用真实服务器或一些调度服务。但是,无论如何,Dialogflow 不允许您这样做,webhook 请求会在几秒钟后超时。如果到那时您还没有发送响应,代理将告诉用户您的服务不可用。您也不能在没有用户明确请求的情况下启动新会话,大概是因为开发人员会很快滥用它来发送垃圾邮件等。因此无法在 20 分钟后触发事件。
最接近您要查找的可能是 push notifications,但与后续事件相比它们非常有限。