Ошибка отложенного задания при использовании DataMapper в качестве бэкэнда - PullRequest
2 голосов
/ 20 февраля 2011

Я получаю странную ошибку при использовании DataMapper в качестве бэкэнда для отложенного задания.В настоящее время я использую следующие драгоценные камни:

delayed_job, 2.1.0.pre2
delayed_job_data_mapper, 1.0.0.rc

В соответствии с инструкциями, найденными здесь:

https://github.com/collectiveidea/delayed_job_data_mapper

Я могу успешно запустить

Delayed::Worker.backend = :data_mapper
Delayed::Worker.backend.auto_upgrade!

, а также помещать объекты в базу данных.Тем не менее, когда я пытаюсь запустить задачу rake для запуска работника, рабочие запускаются успешно, но затем при попытке решить, какие задания извлекать, выдает следующую ошибку:

rake aborted!
expected a time or date, got Sun Feb 20 11:06:58 -0600 2011

Кажется, что это былоранее сообщалось о проблеме на Github кем-то еще, но решения не существует, и заявке уже несколько месяцев:

https://github.com/collectiveidea/delayed_job_data_mapper/issues#issue/1

[ОБНОВЛЕНИЕ] Кто-то опубликовал ответ на проблему Github,который я продублировал в своем ответе ниже этого вопроса.

Итак, мой вопрос таков: кто-нибудь решил эту ошибку?Или есть другой способ выполнить DataMapper + Delayed Job, о котором я не знаю?

Полная трассировка рейка:

expected a time or date, got Sun Feb 20 11:08:56 -0600 2011
/Library/Ruby/Gems/1.8/gems/activesupport-3.0.3/lib/active_support/duration.rb:94:in `sum'
/Library/Ruby/Gems/1.8/gems/delayed_job-2.1.0.pre2/lib/delayed/worker.rb:33:in `inject'
/Library/Ruby/Gems/1.8/gems/activesupport-3.0.3/lib/active_support/duration.rb:86:in `each'
/Library/Ruby/Gems/1.8/gems/activesupport-3.0.3/lib/active_support/duration.rb:86:in `inject'
/Library/Ruby/Gems/1.8/gems/activesupport-3.0.3/lib/active_support/duration.rb:86:in `sum'
/Library/Ruby/Gems/1.8/gems/activesupport-3.0.3/lib/active_support/duration.rb:69:in `until'
/Library/Ruby/Gems/1.8/gems/activesupport-3.0.3/lib/active_support/core_ext/time/calculations.rb:255:in `minus_without_coercion'
/Library/Ruby/Gems/1.8/gems/activesupport-3.0.3/lib/active_support/core_ext/time/calculations.rb:268:in `-'
/Library/Ruby/Gems/1.8/gems/delayed_job_data_mapper-1.0.0.rc/lib/delayed/backend/data_mapper.rb:35:in `find_available'
/Library/Ruby/Gems/1.8/gems/delayed_job-2.1.0.pre2/lib/delayed/worker.rb:172:in `reserve_and_run_one_job'
/Library/Ruby/Gems/1.8/gems/delayed_job-2.1.0.pre2/lib/delayed/worker.rb:101:in `work_off'
/Library/Ruby/Gems/1.8/gems/delayed_job-2.1.0.pre2/lib/delayed/worker.rb:100:in `times'
/Library/Ruby/Gems/1.8/gems/delayed_job-2.1.0.pre2/lib/delayed/worker.rb:100:in `work_off'
/Library/Ruby/Gems/1.8/gems/delayed_job-2.1.0.pre2/lib/delayed/worker.rb:75:in `start'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/benchmark.rb:308:in `realtime'
/Library/Ruby/Gems/1.8/gems/delayed_job-2.1.0.pre2/lib/delayed/worker.rb:74:in `start'
/Library/Ruby/Gems/1.8/gems/delayed_job-2.1.0.pre2/lib/delayed/worker.rb:71:in `loop'
/Library/Ruby/Gems/1.8/gems/delayed_job-2.1.0.pre2/lib/delayed/worker.rb:71:in `start'

Спасибо!

1 Ответ

1 голос
/ 21 февраля 2011

stefanobernardi на Github дал ответ:

Вам необходимо указать "active_support / core_ext"

У меня не было шансапопробовать это самостоятельно и посмотреть, сработает ли это с тех пор, как я перешел на Resque, но я решил опубликовать этот ответ, если кто-нибудь еще столкнется с этим вопросом и действительно захочет найти решение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...