2012-01-27 4 views
0

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

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

+0

Привет, Вы могли решить эту проблему? Я вижу ту же проблему. Любые указатели приветствуются! – d33pika

ответ

0

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

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

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

Смежные вопросы