J'ai un travail actif qui est planifiée tous les jours à 03 heures.L'application est un SAAS chaque sous-domaine a un fuseau horaire différent. Ce que je demande est comment faire le travail d'arrière-plan s'exécute tous les 3 heures du matin selon le fuseau horaire de chaque compagnie pas une fois au moment du serveur. J'ai dans mon DB l'attribut timezone, chaque entreprise peut insérer son propre.Rails travail actif exécuter quotidiennement à un moment spécifique en fonction du fuseau horaire
j'ai dans mon sidekiq_schedule.yml
schedule_foo_job:
cron: "0 3 * * *"
class: "FooJob"
queue: default
active_job: true
Et dans le fichier d'emploi
class FooJob < ApplicationJob
queue_as :default
def perform(*args)
DoSomeThing.new.run
end
end
Est-il possible d'y arriver avec sidekiq_cron?
Je pensais à faire une autre course d'emploi d'abord pour obtenir toutes les fuseaux horaires de la DB et obtenir la différence entre eux et le fuseau horaire du serveur puis passer chacun au code suivant
FooJob.set(wait_until: "Pass the time here").perform_later
Mais je Je ne sais pas si c'est la meilleure façon d'accomplir ceci ou pas car je vais avoir un autre problème de synchronisation avec le fonctionnement du premier emploi