我想制作一个基于集群的NodeJS脚本,它有8个或更多的工作者。脚本独立时使用SetTimeout
,计时器存储在NodeJS脚本内部。现在我必须对此做点什么,我想也许我可以使用redis过期,并以某种方式在密钥过期时从redis调用一个函数?
有人能给我举个小例子吗?还有一个问题:这有多可靠?
如果您使用的是Redis 2.8.0+,那么会有密钥空间通知。这些使用Redis中现有的pubsub机制,因此您可以简单地订阅这些不同的通知。
您确实需要确保启用这些通知,因为它们在默认情况下是禁用的。您可以通过更改永久解决方案的redis.conf
配置文件来实现这一点,也可以通过Redis CLI使用类似CONFIG SET notify-keyspace-events EKx
的东西临时启用它。您也可以通过redis
模块启用它,比如:
client.config('set', 'notify-keyspace-events', 'EKx', function(err) {
if (err) throw err;
});