我想知道在将celery任务部署到工作人员后,从浏览器监控芹菜任务有哪些选项?
我目前的应用程序堆栈是一个在扭曲的内部运行的烧瓶应用程序,使用芹菜运行数十到数千个小的后台任务(更新存储库中的元数据,创建图像衍生物等)我正在设想使用ajax长轮询监视用户发起的芹菜任务的状态。我正在使用redis作为后端经纪人和结果。
我看到芹菜有一些命令行方式来监控任务,或者flower用于Web仪表板。但是,如果我想从发送到芹菜的特定任务中看到更详细的状态,那么打印/写入日志文件对该任务更有意义,然后对该文件进行长时间轮询,以便从烧瓶前端进行更改吗? / p>
此时用户可以说“更新这10,000个项目”,任务被发送到芹菜,前端很快就会说“工作发送!”。任务完成了。但我想让用户导航到“/ status”并查看这10,000个小作业的状态 - 即使滚动日志文件也可能有效。
任何建议都将不胜感激。花了很多时间才把它做成了这么简单的草图,但是我正在旋转我的轮子,确定 WHAT 从用户前端进行长时间的轮询。
答案 0 :(得分:4)
尝试Jobstatic,它正在扩展Celery。
来自项目说明:
Jobtastic为您提供以下好处:
答案 1 :(得分:1)
Jobtastic是一个好主意,但不是很适合我们的。最后,决定创建一个递增的作业号(存储在Redis中以及结果和代理),将与该作业号相关联的所有芹菜任务ID推送到python对象中,然后将其腌制并以redis形式存储。然后我们可以使用它来查看整个"工作"已完成,或其状态。为了我们的目的,工作很可爱。