我的python程序不是那种你会为之创建初始化脚本的东西。这只是一个长时间运行的过程,需要运行,直到我告诉它关闭。
我运行该程序的多个实例,每个实例都有不同的cmd行参数。仅供参考,该程序就像一个与我的用户聊天的物理导师,每个实例代表一个不同的物理问题。
我的 Django 应用程序使用 Redis 发布/订阅与这些进程进行通信
我想改进我从 Django 视图启动/停止和管理这些进程的方式。 我不知道的是,芹菜是否是适合我做到这一点的技术。许多芹菜文档听起来像是用于运行短期异步任务,例如他们的"add()"示例任务。
目前,我的观点正在做一些可怕的"生成"事情来启动进程,并且我正在跟踪哪些进程正在使用 Redis 哈希以完全临时的方式运行。
我的程序实际上只有在它传递一个-d
参数时才守护进程,我想如果使用芹菜,我不会传递它,尽管如果我不传递该选项,它确实会输出到 stdout/stderr。
我真正需要的是:
- 启动/停止进程的方法
- 有关启动/停止操作是否成功的信息
- 有关我的哪些进程正在运行的信息
我不想要的是:
- 正在运行具有相同配置的进程的多个实例
- 需要替换我与 Django 的通信方式(Redis 发布/订阅)
芹菜听起来像是我用于流程管理的合适技术吗?
也许你可以利用主管来解决这个问题。它擅长运行和监视长时间运行的进程,并具有XML-RPC接口。
您可以在此处查看我所做的事情的示例(此处的示例输出)。