我想确保在服务器实例(或集群节点)之间一个接一个地调用每个函数。 我可以在需要时自由地将功能添加到队列中,并且这些功能是异步的。
它可以得到Redis的支持,并且可以使用NodeJS。
请你知道任何lib吗? 或任何实施方式?
我尝试了许多像Kue一样的队列库,但它不能确保只在实例之间调用。
非常感谢 SEB
答案 0 :(得分:0)
我发现了怎么做。 对于任何被捕者:我使用无限重试的锁定库。
lib是node-redlock:https://github.com/mike-marcacci/node-redlock 它实现了Redis最新推荐的锁定资源的方法:http://redis.io/topics/distlock在Clustered Redis基础架构上更可靠。此页面上的节点比NodeJS更多。
具有函数调用轮询队列的愚蠢技巧是使用具有Infinity的锁定器作为retryCount设置的值。 很容易用一个具有aquire(callabck)广告发布功能的对象来包装它。
如果有人批评这种解决方案和/或其他技术,我会很高兴听到。
由于