0
有沒有人用過pidbox.Mailbox?成功使用pidbox.Mailbox?
我正在嘗試做類似的例子,但該文件是過時的方式。我設法得到一些信息發佈到Django交通工具,但從那裏他們從來沒有成功地收到。
我希望有人知道如何使用它,並且可以告訴我一個如何成功地調用/演員的例子。
這裏是我有什麼(虛擬節點真的什麼也不做只是打印或列表):
#node/server
mailbox = pidbox.Mailbox("test", type="direct")
connection = BrokerConnection(transport="django")
bound = mailbox(connection)
state = {"node": DummyNode(),
"connection": connection
}
node = bound.Node(state = state)
@node.handler
def list(state, **kwargs):
print 'list called'
return state["node"].list()
@node.handler
def connection_info(state, **kwargs):
return {"connection": state["connection"].info()}
@node.handler
def print_msg(state, **kwargs):
print 'Node handler!'
state["node"].print_msg(kwargs)
consumer = node.listen(channel = connection.channel())
try:
while not self.killed:
print 'Consumer Waiting'
connection.drain_events()
finally:
consumer.cancel()
和一個簡單的客戶端。
#client:
mailbox = pidbox.Mailbox("test", type="direct")
connection = BrokerConnection(transport="django")
bound = mailbox(connection)
bound.cast(["localhost"], "print_msg", {'msg' : 'Message for you'})
info = bound.call(["test_application"],"list", callback=callback)
當我瀏覽它時,它看起來是正確的,但是什麼不正確? – asksol 2011-03-26 21:31:50
3個字或更少:沒有任何工作。沒有收到消息,也沒有回覆。我可以用它來偵測一段時間,並與django交通工具進行單向通信,但它不值得,因此我正在編寫我自己的程序。你是說你已經成功地使用過這款產品嗎? – Nix 2011-03-28 14:34:50
Celery(http://celeryproject.org)使用pidbox來遠程控制工作進程。但我現在可以看到它爲什麼不適合你,你正在使用不支持扇出交換(廣播)的「django」傳輸。看到這裏http://kombu.me/introduction.html#transport-comparison – asksol 2011-03-28 19:32:58