тайм-аут сокета - PullRequest
       4

тайм-аут сокета

1 голос
/ 27 января 2012

Я запускаю resque на кластере EC2.У меня есть около 10 рабочих, работающих на 2 больших экземплярах, и еще один большой экземпляр, выполняющий сам redis, но каждые 3 минуты работники resque убиваются из-за истечения времени ожидания соединения через сокет.

Кто-нибудь сталкивался с этой проблемой раньше?

1 Ответ

1 голос
/ 28 марта 2012

Возможно, вы хотите установить timeout=0 в вашем redis.conf , чтобы ваши серверы позволяли вашим клиентам бездействовать бесконечно. Значение по умолчанию составляет 300 секунд (пять минут).

Другой вариант - организовать, чтобы ваши клиенты запускали команду Redis PING каждые пару минут (ответом должна быть строка «PONG»). Я не вижу никакой возможности для Resque предоставить такой вид поддержки для вас (хотя я вижу ссылки на патч keepalive для Resque .

(Если бы я реализовывал что-то вроде Resque, я бы использовал любой из BLPOP, BRPOP или BRPOPLPUSH с ненулевым параметром тайм-аута для поддержки чего-то похожего на select(), например, опрос. каждую минуту или около того, даже если очередь (я) не заняты, чтобы выполнить некоторую уборку (включая запуск "PING").

...