毎日午前3時にスケジュールされたアクティブなジョブがあります。アプリケーションはSAASであり、各サブドメインには異なるタイムゾーンがあります。私が求めているのは、バックグラウンドジョブをサーバー時間に1回ではなく、各会社のタイムゾーンに従って3時に実行する方法です。 私は私のDBにtimezone属性を持っています、各社は独自のものを挿入することができます。 sidekiq_cronでこれを達成する方法は、私は私のsidekiq_schedule.ymlタイムゾーンに従って特定の時刻に毎日実行されるRailsアクティブジョブ
schedule_foo_job:
cron: "0 3 * * *"
class: "FooJob"
queue: default
active_job: true
に、ジョブファイル
class FooJob < ApplicationJob
queue_as :default
def perform(*args)
DoSomeThing.new.run
end
end
に持って
ありますか?
私は、次のコード
FooJob.set(wait_until: "Pass the time here").perform_later
しかし、私にそれぞれ1を渡す最初の別のジョブの実行がDBからのすべてのタイムゾーンを取得するために作成し、それらとサーバーのタイムゾーン間の差を得るために考えていましたこれが最善の方法であるかどうかはわかりません。最初のジョブの実行に別のタイミングの問題があります。