我想作为Bot操作的一部分运行后台任务,例如运行Azure自动化作业或向人工发送审批请求。目标是bot只应在后台任务完全完成后才回复用户,在这种情况下,当Azure自动化任务成功完成或人工批准请求时。
我的bot使用的是自定义的DirectLine通道,如果与用户的通信是异步的,那么用户不会期望bot立即回复。如何让before在将响应发送回用户之前等待后台任务的完成?
发布于 2020-06-14 19:18:58
您正在寻找的方法称为主动消息传递。首先保存会话引用,当后台任务完成时,可以利用此引用发送消息。
Microsoft:向用户发送主动通知
发布于 2022-02-23 20:02:54
也许对行动来说有点太晚了,但对其他到达这里的人来说可能是相关的。
几个月前,我制作了一个机器人,它必须等待一个后台进程(构建一个嵌入了Power的报告并生成它的映像)并将该映像返回给用户。
在我的示例中,后台进程非常适合使用BackgroundService类作为宿主服务的进程内后台服务,以及用于准备数据并通过频道将其发送到后台服务的自定义操作。
最后,工作完成后,服务使用Bot中的ContinueConversationAsync方法将信息返回给用户。
https://stackoverflow.com/questions/62370678
复制相似问题