diff --git a/config/deploy.rb b/config/deploy.rb index f5c8c5ef7..1112257cb 100644 --- a/config/deploy.rb +++ b/config/deploy.rb @@ -47,7 +47,7 @@ namespace :deploy do after "deploy:migrate", "add_new_settings" - before :publishing, "smtp_and_ssl_secrets" + before :publishing, "smtp_ssl_and_delay_jobs_secrets" after :publishing, "deploy:restart" after :published, "delayed_job:restart" @@ -131,7 +131,7 @@ task :setup_puma do end end -task :smtp_and_ssl_secrets do +task :smtp_ssl_and_delay_jobs_secrets do on roles(:app) do within current_path do with rails_env: fetch(:rails_env) do @@ -141,7 +141,7 @@ task :smtp_and_ssl_secrets do begin execute "cp #{release_path}/#{tasks_file_path} #{current_path}/#{tasks_file_path}" - execute :rake, "secrets:smtp_and_ssl" + execute :rake, "secrets:smtp_ssl_and_delay_jobs" ensure execute "rm #{current_path}/#{tasks_file_path}" end diff --git a/config/initializers/delayed_job_config.rb b/config/initializers/delayed_job_config.rb index 151511dc6..3bcbfa4a1 100644 --- a/config/initializers/delayed_job_config.rb +++ b/config/initializers/delayed_job_config.rb @@ -1,8 +1,11 @@ if Rails.env.test? || Rails.env.development? Delayed::Worker.delay_jobs = false -else +elsif Rails.application.secrets.delay_jobs.nil? Delayed::Worker.delay_jobs = true +else + Delayed::Worker.delay_jobs = Rails.application.secrets.delay_jobs end + Delayed::Worker.destroy_failed_jobs = false Delayed::Worker.sleep_delay = 2 Delayed::Worker.max_attempts = 3 diff --git a/config/secrets.yml.example b/config/secrets.yml.example index 05870b09d..b9f227a46 100644 --- a/config/secrets.yml.example +++ b/config/secrets.yml.example @@ -33,6 +33,7 @@ staging: secret_key_base: "" server_name: "" force_ssl: true + delay_jobs: true rollbar_server_token: "" http_basic_username: "" http_basic_password: "" @@ -55,6 +56,7 @@ preproduction: # authentication: "plain" # enable_starttls_auto: true force_ssl: true + delay_jobs: true rollbar_server_token: "" http_basic_username: "" http_basic_password: "" @@ -82,6 +84,7 @@ production: # authentication: "plain" # enable_starttls_auto: true force_ssl: true + delay_jobs: true rollbar_server_token: "" http_basic_username: "" http_basic_password: "" diff --git a/lib/tasks/secrets.rake b/lib/tasks/secrets.rake index e3b19d265..25d66d3c3 100644 --- a/lib/tasks/secrets.rake +++ b/lib/tasks/secrets.rake @@ -1,10 +1,11 @@ namespace :secrets do - desc "Add SMTP and SSL settings to secrets.yml" - task smtp_and_ssl: :environment do + desc "Add SMTP, SSL and delay jobs settings to secrets.yml" + task smtp_ssl_and_delay_jobs: :environment do current_settings = { "mailer_delivery_method" => ActionMailer::Base.delivery_method.to_s, "smtp_settings" => ActionMailer::Base.smtp_settings.stringify_keys, - "force_ssl" => Rails.application.config.force_ssl + "force_ssl" => Rails.application.config.force_ssl, + "delay_jobs" => Delayed::Worker.delay_jobs } settings_to_add = current_settings.select do |name, _|