我正在使用zeromq,celluloid创建一个异步应用程序。我需要维护依赖于某些响应的不同任务的状态。我可以通过在响应参数中发送有关状态的数据来实现。但有没有更好的方法呢?
答案 0 :(得分:0)
Conditions
等待回复。这个问题非常抽象/模糊,所以我会尽力给你一个功能性的例子。如果我理解/猜测正确,这就是你需要做的事情:
UUID
Celluloid::Internals::UUID.generate
。UUID
。Condition
相关联的UUID
。UUID
与之关联。UUID
发送回复数据。Condition
,将Condition
定位在线程安全的Hash
中{ {1}}。UUID
而不是直接处理响应,在所述对象中接收所需的数据。陈述的对象应该不知道wait
这是设计无状态的...它应该与一个层进行通信,该层发出请求,接收响应,并将响应传递给要求它的对象,没有声明的对象失去其状态,并且没有在请求或响应中传递状态信息。
即将推出的ECell
大量使用此策略。希望您已经使用celluloid-zmq
gem来支持已经0MQ
支持。