如何从Python控制circus中运行的手表/进程
我使用如何从Python控制circus中运行的手表/进程,python,circusd,Python,Circusd,我使用circud和ini文件运行一些自定义Python进程: [circus] endpoint = tcp://127.0.0.1:5555 pubsub_endpoint = tcp://127.0.0.1:5556 check_delay = 5 logoutput = /var/log/circus.log [watcher:test-worker] working_dir = /home/ubuntu/app cmd = python args = test.py numproce
circud
和ini
文件运行一些自定义Python进程:
[circus]
endpoint = tcp://127.0.0.1:5555
pubsub_endpoint = tcp://127.0.0.1:5556
check_delay = 5
logoutput = /var/log/circus.log
[watcher:test-worker]
working_dir = /home/ubuntu/app
cmd = python
args = test.py
numprocesses = 1
我可以使用CIRCCTL控制这些观察者:
circusctl 0.14.0
(circusctl) list
test-worker
(circusctl)
但是我想用Python脚本控制这些(列表
,开始
,停止
,重新启动
等等)
我已经检查了文档,但是它的示例似乎在不同的
circus
上下文/实例中运行进程,并且它没有连接到正在运行的Circud
实例。首先,我直到现在才知道Circud。看起来很有趣。其次,我认为体系结构的一部分思想是让工作人员独立,甚至可能部署在单独的服务器上。因此,在简要查看了上的doco之后,我认为与他们通信的正确方式是通过8080端口,或者可能通过redis向他们发送消息?@RobertB这就是大局。Circus和Circuisctl是用Python编写的,这些类可以导入到我们自己的代码中。但是我找不到一个合适的方法来轻松地做到这一点。马戏团也是围绕ZMQ建造的;所以我想直接使用ZMQ并不困难。但我不想重新发明轮子。我不认为动态控制集群中的工作进程是一个新问题。虽然没有文档记录,但所有要发送的zmq消息和类都在源代码中。有一个演示如何去做。您可以在circus source的“commands”目录中找到所有的commandJSON消息;没有多少时间去挖掘。相反,我编写了一个插件,如中所述,我将其作为Rabbit MQ客户端编写,可以远程控制。我使用Rabbit MQ,因为它已经在项目中可用,我对它很满意。正如你所建议的;在未来,我计划使用ZMQ创建一个客户端或插件。