Запланируйте задание, используя любое время с заданным временем - PullRequest
0 голосов
/ 15 марта 2019

конфиг / schedule.rb

def timezoned time
  Time.zone = "Pacific Time (US & Canada)"
  Time.zone.parse(time).utc
end

every 1.day, at: timezoned('5:30 am') do
  runner 'App1::Task1.perform_async'
end

every 1.day, at: timezoned('5:31 am') do
  runner 'App1::Task2.perform_async'
end

every 1.day, at: timezoned('5:33 am') do
  runner 'App2::Task1.perform_async'
end

every 1.day, at: timezoned('5:34 am') do
  runner 'App2::Task2.perform_async'
end

every 1.day, at: timezoned('5:36 am') do
  runner 'App3::Task1.perform_async'
end

every 1.day, at: timezoned('5:37 am') do
  runner 'App3::Task2.perform_async'
end

every 1.day, at: timezoned('5:40 am') do
  runner 'App4::Task1.perform_async'
end

every 1.day, at: timezoned('5:41 am') do
  runner 'App4::Task2.perform_async'
end

every 1.day, at: timezoned('5:42 am') do
  runner 'App4::Task3.perform_async'
end

every 1.day, at: timezoned('5:43 am') do
  runner 'App5::Task4.perform_async'
end

Я использую Sidekiq с Every Gem для планирования заданий в Rails. Выше мой график. Есть ли способ планировать задачи лучше, чем выше? (например, время + 1 минута или время + 2 минуты)

Будет полезно, если какой-либо лучший подход к планированию задачи будет выше.

1 Ответ

0 голосов
/ 15 марта 2019

Опция 1:

, поскольку это код Ruby, который вы можете динамически перебирать в массиве приложений, задач и динамически настраиваемого планировщика.'AppTaskRunner.perform_async' end

А при запуске AppTaskRunner необходимая задача для приложения зависит от вашей логики

...