我有一个Rails应用程序,使用Resque在多个服务器上执行后台作业。这些工作的资源需求是不同的,所以我想限制特定类型的工作量,每个服务器都可以。我希望能够让多个服务器查询相同的Redis数据库。Resque - 在多个服务器之间均匀分配作业负载
这里是场景: 我有服务器1和服务器2连接到相同的Redis数据库。
1)每个服务器应该采取3个“编码”作业和5个“分析”作业最多(总共8个作业)。
2)在给定的时刻,Redis服务器将在“编码”队列中有10个作业,并且在“解析”队列中有12个作业可供Resque工作人员处理。我有2个服务器在运行,查询同一个数据库。
问题:如何防止Server-1采用8个“Encoding”作业,Server-2采取其余的措施?换句话说,如何限制Server-1从“编码”队列中只取3个作业,从“解析”队列中取5个作业并使Server-2执行相同的操作?
我想保持代码的通用,这样我可以将其部署到多个服务器,而无需单独的调整..
你能指出这类上司的一些例子希望一样吗? – Stpn