我在django-python中制作了一个聊天机器人,它通过Http请求进行监听。某些聊天频道,如slack,需要服务器立即发出200OK http响应。因此,我注册了一个芹菜任务(到队列中),立即返回http200OK,并在后台处理回复。
在生产过程中(基于SQS),最终用户需要3-4秒才能收到机器人的回复。通过日志,我发现延迟是在联系芹菜工人的任务中。
当用户输入消息时,我想让我的聊天机器人的回复非常快,并且正在为这个特定的用例寻找一个更快的芹菜替代品。非常感谢。
请注意,我不想使用slack的RTM api,因为我不打算让我的机器人slack特定。
我通过使用多线程解决了这个问题,正如这个答案中所解释的,尽管我还不太确定这个解决方案的可扩展性。