Вопрос

Я просто получаю Resque-Sedule и работает, и это отлично работает с одной задачей расписания. Однако, когда я добавил секунду в то же расписание Cron, кажется, что он топает на себя. Вот как выглядит мой resque_schedule.yml:

email_subscription_notification:
  cron: * * * * *
  class: SubscriptionProcessor
  args: test
  description: Email Notifications
email_polling:
  cron: * * * * *
  class: EmailPollingProcessor
  args: test
  description: Email Polling

Когда я запускаюсь через Rake Resque: Scheduler, я получу периодические ошибки:

2011-03-15 17:43:00 Failed to enqueue EmailPollingProcessor:
  Got '0' as initial reply byte. If you're running in a multi-threaded environment, make sure you pass the :thread_safe option when initializing the connection. If you're in a forking environment, such as Unicorn, you need to connect to Redis after forking. 

Если я меняю график, чтобы иметь просто один или другой, они играют хорошо. Если я меняю графики Cron, чтобы не перекрываться, они работают нормально. Спасибо за любую помощь. OSX 10.6.6, Ruby 1.9.2P136.

Обратите внимание на метод выполнения оба класса, которые просто есть для отладки прямо сейчас.

Это было полезно?

Решение

Хорошо, наверное, плохая форма, отвечая на мой собственный вопрос, извинения ... я нашел это Так нить и подсказка была добавить: thread_safe = true, когда я загружаю_resque:

Resque.redis = Redis.new(:host => config['host'], :port => config['port'], :thread_safe => true)

Примечание: это было с Redis 2.1.1, и я думал, что прочитал Threat_Safe, был по умолчанию. Но я не нахожу эту статью ...

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top