我的应用收到进程消息(目前来自RabbitMQ)。对于某些消息,一次只能处理一条消息,其他一些消息不需要任何并发。预取配置为5条消息。
为此,我使用包信号量(https://www.npmjs.com/package/semaphore),它在一台服务器上运行正常。在应用程序中,需要并发的消息等待其他消息完成然后启动,应用程序继续接收消息并在等待时间内处理它们。
但是现在,我想将我的应用程序部署到多个服务器或docker,而Semaphore软件包不会管理多个主机。 我尝试了包单例进程(https://www.npmjs.com/package/singleton-process),但是当其他进程获取信号量时它不会等待。
您是否知道要使用的软件包或如何以不同方式处理我的消息?