Browse Source

Migrated AppVersionRestartJob to Active Job.

Jens Pfeifer 6 years ago
parent
commit
a92f7b2153

+ 7 - 0
app/jobs/app_version_restart_job.rb

@@ -0,0 +1,7 @@
+class AppVersionRestartJob < ApplicationJob
+  def perform(cmd)
+    Rails.logger.info "executing CMD: #{cmd}"
+    ::Kernel.system(cmd)
+    Rails.logger.info "executed CMD: #{cmd}"
+  end
+end

+ 1 - 1
app/models/object_manager/attribute.rb

@@ -768,7 +768,7 @@ to send no browser reload event, pass false
         if ENV['APP_RESTART_CMD']
           AppVersion.set(true, 'restart_auto')
           sleep 4
-          Delayed::Job.enqueue(Observer::AppVersionRestartJob.new(ENV['APP_RESTART_CMD']))
+          AppVersionRestartJob.perform_later(ENV['APP_RESTART_CMD'])
         else
           AppVersion.set(true, 'restart_manual')
         end

+ 0 - 11
app/models/observer/app_version_restart_job.rb

@@ -1,11 +0,0 @@
-class Observer::AppVersionRestartJob
-  def initialize(cmd)
-    @cmd = cmd
-  end
-
-  def perform
-    Rails.logger.info "executing CMD: #{@cmd}"
-    system(@cmd)
-    Rails.logger.info "executed CMD: #{@cmd}"
-  end
-end

+ 11 - 0
spec/jobs/app_version_restart_job_spec.rb

@@ -0,0 +1,11 @@
+require 'rails_helper'
+
+RSpec.describe AppVersionRestartJob, type: :job do
+
+  let(:cmd) { '/path/to/restart_script.sh' }
+
+  it 'executes app version restart job' do
+    expect(::Kernel).to receive(:system).with(cmd)
+    described_class.perform_now(cmd)
+  end
+end