2016-03-16 4 views
0

Я делаю веб-приложение для аукциона. Когда объявление создается, я автоматически добавляю срок годности в базу данных.Ruby on Rail - добавление фоновой задачи для обновления статуса и даты истечения срока действия

before_create :set_expiration_date 

    def set_expiration_date 
    self.expiration_date = Time.now + 60.days 
    end 

Как я могу добавить фон задания/работу, поэтому, когда объявление достигло даты истечения , он может изменить status to false.

Это хороший камень, который я мог бы использовать в моем случае?

Я попытался всякий раз, когда драгоценный камень, и это было очень громоздко, и оно не пробежало в фоновом режиме и было трудно понять.

+2

Генерировать 'rake' задачу, а затем вызвать его периодически. – devanand

+0

Вы используете героку в производстве? – toddmetheny

+0

@toddmetheny Нет Я нахожусь в разработке (localhost: 3000) – Rubioli

ответ

0

В файле Lib/задачи, создать файл с именем something.rake и внутри этого файла, создать задачу, говоря:

task :name_of_task => :environment do 
    # name of model 
    Ad.find_each do |ad| 
    # if add expired, change status to false and save 
    end 
end 

Вы можете запустить задачу, говоря rake name_of_task в терминале ... или вам может добавить name_of_task в планировщик герою, если вы используете герою. https://elements.heroku.com/addons/scheduler