Redis 消息队列 - 在 NodeJS 应用程序中自动接收消息
Redis Message Queue - Auto receive message in NodeJS app
我正在构建一个 nodeJS 应用程序。我正在使用 redis 消息队列。但是要接收推送到队列的新消息,我必须调用 rsmq.receiveMessage 方法。我希望这是自动的,就像当新消息被推送到 redis 消息队列时我希望 rsmq.receiveMessage 自动调用,即基于事件的
Redis pubsub 可以执行您描述的这种 "server push" 技术。您的客户就其感兴趣的一个或多个主题调用 'subscribe',当数据到达时,数据将“发布”到该主题。您的客户端代码将与每个已发布的有效负载一起调用。
这个 "proper" 消息队列(如 RabbitMQ)的区别在于
- 数据未缓冲 - 如果您的订阅客户端在数据到达时未监听,则数据丢失
- 没有已读回执 - 在其他排队平台上,可以在工作人员处理队列项目时将其标记为 'in progress'。超时后可以将队列项交给另一个工作人员
- 可扩展性 - 真正的消息队列允许在连接的工作人员之间共享工作:工作人员越多,工作共享的方式就越多。 PubSub 将所有数据发送给所有工作人员
我正在构建一个 nodeJS 应用程序。我正在使用 redis 消息队列。但是要接收推送到队列的新消息,我必须调用 rsmq.receiveMessage 方法。我希望这是自动的,就像当新消息被推送到 redis 消息队列时我希望 rsmq.receiveMessage 自动调用,即基于事件的
Redis pubsub 可以执行您描述的这种 "server push" 技术。您的客户就其感兴趣的一个或多个主题调用 'subscribe',当数据到达时,数据将“发布”到该主题。您的客户端代码将与每个已发布的有效负载一起调用。
这个 "proper" 消息队列(如 RabbitMQ)的区别在于
- 数据未缓冲 - 如果您的订阅客户端在数据到达时未监听,则数据丢失
- 没有已读回执 - 在其他排队平台上,可以在工作人员处理队列项目时将其标记为 'in progress'。超时后可以将队列项交给另一个工作人员
- 可扩展性 - 真正的消息队列允许在连接的工作人员之间共享工作:工作人员越多,工作共享的方式就越多。 PubSub 将所有数据发送给所有工作人员