2012-01-23 2 views
4

У меня есть пара заданий, которые задаются через after_create крючок объекта. Во время моих тестов я сохранял объект, поэтому одна работа срабатывает примерно через 5 минут, а одно задание - через 10 минут (используя два атрибута модели, которые являются датами). Проблема в том, что оба кажутся немедленно исполненными. Если я создам объект, устанавливающий два значения даты в течение 24 часов в будущем, он, кажется, ждет. Поэтому мне интересно, не так ли, как думает рабочий, отличается от того, что такое сервер. Есть ли способ убедиться, что работник delayed_job синхронизирован?Задержка задания run_at не работает в правильное время

Вот код для постановки в очередь заданий:

Delayed::Job.enqueue(CharityProductCreateJob.new(self.id, shop.id), 0, self.start_date) 
Delayed::Job.enqueue(CharityProductCreateJob.new(self.id, shop.id), 0, self.end_date) 

ответ

3

Это может ответить на ваш вопрос http://www.gregbenedict.com/2009/08/19/is-delayed-job-run_at-datetime-giving-you-fits/

+0

Я побежал в этот поиск приводит себя. Я попробовал что-то вроде этого, но не повезло: 'Delayed :: Job.enqueue (CharityProductCreateJob.new (self.id, shop.id), 0, self.start_date.utc)' – agmcleod

+0

Только что вернулся к этому вопросу, чтобы выбрать ответ. Вышеприведенное частично верно для моей ситуации. Одна вещь, которую нужно проверить, - посмотреть, в какое время вы по умолчанию используете файл application.rb. Я обновил это до восточного стандарта, а затем позвонил .utc, как и в моем предыдущем комментарии. – agmcleod

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