Планирование задач путем чтения времени выполнения из базы данных вместо кода - PullRequest
0 голосов
/ 26 декабря 2018

Я ищу поток в ruby, через который я могу запускать задачу ежедневно в определенные моменты времени.Я хочу добавить новую задачу в некоторую таблицу, указать время в некотором столбце, и задача должна планироваться ежедневно, так как строка была добавлена ​​в таблицу.Я знаю, что гем «всякий раз» используется для планирования, но он потребует развертывания кода всякий раз, когда мне нужно указать время в schedule.rb.Возможно ли даже то, что я хочу сделать?

1 Ответ

0 голосов
/ 26 декабря 2018

Я думаю, что вы можете использовать crone gem Это просто запись в ruby, вам не нужно устанавливать работу cron, как всякий раз, когда gem.но как это работает cron в linux

шаги установки:

gem 'crono'
rails generate crono:install
rake db:migrate # to install it's table

вы можете объединиться с активным заданием

class TestJob # This is not an Active Job job, but pretty legal Crono job.
  def perform(*args)
    # put you scheduled code here
    # Comments.deleted.clean_up...
  end
end

и выполнить планирование следующим образом (нет необходимостиустановить из OS / cron)

# config/cronotab.rb
Crono.perform(TestJob).every 2.days, at: {hour: 15, min: 30}
Crono.perform(TestJob).every 1.week, on: :monday, at: "15:30"
...