resque redis套接字超时

时间:2012-01-27 19:44:54

标签: ruby amazon-ec2 redis resque

我在EC2集群上运行resque。我有大约10个工作程序在2个大型实例上运行,而另一个大型实例运行redis本身,但每3分钟resque工作程序被杀死,因为与redis的套接字连接超时。

之前有没有人遇到过这个问题?

1 个答案:

答案 0 :(得分:1)

也许您想在 redis.conf 中设置timeout=0,这样您的服务器就可以让您的客户无限期地闲置。默认值为300秒(五分钟)。

另一种选择是安排让您的客户每隔几分钟发出一次Redis PING命令(响应应该是字符串“PONG”)。我没有看到Resque的任何选项为你提供这种保持活力(虽然我确实看到对keepalive patch for Resque的引用。

(如果我实现像Resque这样的东西我会使用BLPOP或BRPOP中的任何一个或BRPOPLPUSH使用非零超时选项来支持类似于select()的类似轮询的东西。因此应用程序唤醒每分钟左右,即使队列闲置做一些内务处理(包括运行“PING”)。