我需要一种从用Django和Python编写的Web应用程序执行外部长时间运行进程的方法。
现在我正在使用Supervisord和API。我对这个解决方案的问题在于它非常静态。我需要从我的应用程序构建命令,而不必使用所有可能的命令预先配置Supervisord。参数和命令是动态的。
我需要执行外部进程,保存pid /标识符,然后能够检查它是否仍然存在且正在运行并停止进程。
我发现https://github.com/mnaberez/supervisor_twiddler可以动态添加进程给supervisord。也许这是最好的方式?
如何最好地解决这个问题?
答案 0 :(得分:1)
我建议你看一下这篇文章:
Processing long-running Django tasks using Celery + RabbitMQ + Supervisord + Monit
正如标题所说,还有一些额外的组件(主要是芹菜和rabbitMQ),但这些是满足这种要求的良好且经过验证的技术。