Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从Python控制circus中运行的手表/进程_Python_Circusd - Fatal编程技术网

如何从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创建一个客户端或插件。