我最近安装了一个带有 Exhibitor 的新 ZK 节点,它开始正常。当我执行 atelnet localhost 2181然后运行 astats以查看版本时,即使我安装了 3.4.11,我仍然在输出中看到 3.4.5 版本。我试图找到 ZooKeeper 在哪里读取版本号,但它只是一个 .jar 和一些 lib 文件。你知道我在哪里可以得到我应该运行的“真实”版本吗?谢谢!
这是我在做的时候看到的telnet:
myserver:/tmp/zookeeper # telnet localhost 2181
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
stats
Zookeeper version: 3.4.5-1392090, built on 09/30/2012 17:52 GMT
Clients:
/127.0.0.1:53133[0](queued=0,recved=1,sent=0)
Latency min/avg/max: 0/0/0
Received: 41
Sent: 40
Connections: 1
Outstanding: 0
Zxid: 0x0
Mode: standalone
Node count: 4
Connection closed by foreign host.
Run Code Online (Sandbox Code Playgroud)
运行进程(ps aux | grep zookeeper)显示: …
我是使用 celery 的新手,有一个问题。我有这个简单的任务:
@app.task(name='test_install_queue')
def test_install_queue():
return subprocess.call("exit 0",shell=True)
Run Code Online (Sandbox Code Playgroud)
我稍后会在类似的测试用例中调用此任务
result = tasks.test_default_queue.apply_async(queue="install")
Run Code Online (Sandbox Code Playgroud)
任务在队列中成功运行install(因为我在 celery 日志中看到它,并且它完成得很好。但我想知道一种以编程方式test_install_queue从存储在result.
谢谢!
编辑:
我已将任务更改为:
@app.task(name='test_install_queue',bind=True)
def test_install_queue(self):
return self.request.__dict__
Run Code Online (Sandbox Code Playgroud)
然后我使用的结果apply_async如下:
result = tasks.test_install_queue.apply_async(queue="install")
assert "install" in result.get()["hostname"]
Run Code Online (Sandbox Code Playgroud)
解决方法是工作程序(主机名)与工作程序中初始化的唯一队列具有相同的名称。