我个人不会为此使用轮询机制。我认为这是pub / sub
mq的一个很好的用例,它是数据库顶部的组件,允许消费者订阅特定频道以关注他们关注的实体上的更改事件。
例如:
- 有人要求更改模型
- 模特儿广播变更事件
- 将更改排队以保留在数据库中
- 触发消息队列中特定通道上的更改集,以分发给所有相关方
您可以使用节点EventEmitter对此类事物使用非常简单的进程内发布/订阅机制,并且由于需要扩展,具有持久性要求或需要跨语言MQ,可以使用Rabbitmq,zeromq等技术我已经开始在我的一个应用程序中实现非常轻巧的功能来做到这一点:https
:
//github.com/jmoyers/mettle/blob/master/src/pubsub.coffee
归结为:
pubsub.sub('users.*', function(updates){ // Interested party handles updates for user objects});这样,您就不会对数据库施加愚蠢的轮询压力。实际上,变更分布完全独立于写入数据库
乔希



