标签: django cron request
我的任务需要大约10-20分钟才能完成。用户单击按钮以执行此操作。是否可以从此请求返回并继续在后台运行此任务,并在完成后发送电子邮件或其他内容。
我知道我可以设置一个队列和cron作业,但这似乎太多了,因为只有一个用户会使用此功能。
此外,请求超时或中断的可能性有多大?也许这是一个选项,只是不关闭标签并等待?
答案 0 :(得分:1)
非常可能,是celery的好候选人。
您可能还想查看代理商的redis。
从您的视图中,您可以添加一个任务并让它立即执行并异步执行,然后返回一个带有“现在正在发生这种情况”消息的Http响应或者您喜欢的任何内容。
如果您想在保存对象时执行某些操作,也可以使用post_save或pre_save之类的信号来触发任务。
post_save
pre_save
更新:抱歉,重新阅读问题,您已经使用队列确认了。如果它运行10 - 20分钟,它肯定会超时。除非你增加超时或定期发回一些东西说我还在这里。就像一个json的回应。但实际上这听起来最好由任务队列处理。