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