Add base cron job
This commit is contained in:
parent
33bf2fe109
commit
5005c54891
4 changed files with 50 additions and 15 deletions
17
README.md
17
README.md
|
@ -65,22 +65,9 @@ L'application tourne à l'adresse `http://localhost:3000`.
|
||||||
|
|
||||||
En local, un utilisateur de test est créé automatiquement, avec les identifiants `test@exemple.fr`/`this is a very complicated password !`. (voir [db/seeds.rb](https://github.com/betagouv/demarches-simplifiees.fr/blob/dev/db/seeds.rb))
|
En local, un utilisateur de test est créé automatiquement, avec les identifiants `test@exemple.fr`/`this is a very complicated password !`. (voir [db/seeds.rb](https://github.com/betagouv/demarches-simplifiees.fr/blob/dev/db/seeds.rb))
|
||||||
|
|
||||||
### Programmation des jobs
|
### Programmation des tâches récurrentes
|
||||||
|
|
||||||
AutoArchiveProcedureJob.set(cron: "* * * * *").perform_later
|
rails jobs:schedule
|
||||||
WeeklyOverviewJob.set(cron: "0 7 * * MON").perform_later
|
|
||||||
DeclarativeProceduresJob.set(cron: "* * * * *").perform_later
|
|
||||||
UpdateAdministrateurUsageStatisticsJob.set(cron: "0 10 * * *").perform_later
|
|
||||||
FindDubiousProceduresJob.set(cron: "0 0 * * *").perform_later
|
|
||||||
Administrateurs::ActivateBeforeExpirationJob.set(cron: "0 8 * * *").perform_later
|
|
||||||
WarnExpiringDossiersJob.set(cron: "0 0 1 * *").perform_later
|
|
||||||
InstructeurEmailNotificationJob.set(cron: "0 10 * * MON-FRI").perform_later
|
|
||||||
PurgeUnattachedBlobsJob.set(cron: "0 0 * * *").perform_later
|
|
||||||
OperationsSignatureJob.set(cron: "0 6 * * *").perform_later
|
|
||||||
ExpiredDossiersDeletionJob.set(cron: "0 7 * * *").perform_later
|
|
||||||
PurgeStaleExportsJob.set(cron: "*/5 * * * *").perform_later
|
|
||||||
NotifyDraftNotSubmittedJob.set(cron: "0 7 * * *").perform_later
|
|
||||||
DiscardedDossiersDeletionJob.set(cron: "0 7 * * *").perform_later
|
|
||||||
|
|
||||||
### Voir les emails envoyés en local
|
### Voir les emails envoyés en local
|
||||||
|
|
||||||
|
|
29
app/jobs/cron_job.rb
Normal file
29
app/jobs/cron_job.rb
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
class CronJob < ApplicationJob
|
||||||
|
queue_as :cron
|
||||||
|
class_attribute :cron_expression
|
||||||
|
|
||||||
|
class << self
|
||||||
|
def schedule
|
||||||
|
remove if cron_expression_changed?
|
||||||
|
set(cron: cron_expression).perform_later if !scheduled?
|
||||||
|
end
|
||||||
|
|
||||||
|
def remove
|
||||||
|
delayed_job.destroy if scheduled?
|
||||||
|
end
|
||||||
|
|
||||||
|
def scheduled?
|
||||||
|
delayed_job.present?
|
||||||
|
end
|
||||||
|
|
||||||
|
def cron_expression_changed?
|
||||||
|
scheduled? && delayed_job.cron != cron_expression
|
||||||
|
end
|
||||||
|
|
||||||
|
def delayed_job
|
||||||
|
Delayed::Job
|
||||||
|
.where('handler LIKE ?', "%job_class: #{name}%")
|
||||||
|
.first
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -64,6 +64,16 @@ namespace :after_party do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
namespace :jobs_schedule do
|
||||||
|
desc "Run jobs_schedule tasks."
|
||||||
|
task :run do
|
||||||
|
command %{
|
||||||
|
echo "-----> Running jobs_schedule"
|
||||||
|
#{echo_cmd %[bundle exec rake jobs:schedule]}
|
||||||
|
}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
namespace :service do
|
namespace :service do
|
||||||
desc "Restart puma"
|
desc "Restart puma"
|
||||||
task :restart_puma do
|
task :restart_puma do
|
||||||
|
@ -123,4 +133,5 @@ task :post_deploy do
|
||||||
command 'cd /home/ds/current'
|
command 'cd /home/ds/current'
|
||||||
|
|
||||||
invoke :'after_party:run'
|
invoke :'after_party:run'
|
||||||
|
invoke :'jobs_schedule:run'
|
||||||
end
|
end
|
||||||
|
|
8
lib/tasks/jobs.rake
Normal file
8
lib/tasks/jobs.rake
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
namespace :jobs do
|
||||||
|
desc 'Schedule all cron jobs'
|
||||||
|
task schedule: :environment do
|
||||||
|
glob = Rails.root.join('app', 'jobs', '**', '*_job.rb')
|
||||||
|
Dir.glob(glob).each { |f| require f }
|
||||||
|
CronJob.subclasses.each(&:schedule)
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in a new issue