Browse Source

do not delete running jobs

Andrew Cantino 9 years ago
parent
commit
dc06e3aed0
2 changed files with 4 additions and 1 deletions
  1. 1 1
      app/controllers/jobs_controller.rb
  2. 3 0
      spec/controllers/jobs_controller_spec.rb

+ 1 - 1
app/controllers/jobs_controller.rb

@@ -49,7 +49,7 @@ class JobsController < ApplicationController
   end
 
   def destroy_all
-    Delayed::Job.delete_all
+    Delayed::Job.where(locked_at: nil).delete_all
 
     respond_to do |format|
       format.html { redirect_to jobs_path, notice: "All jobs removed." }

+ 3 - 0
spec/controllers/jobs_controller_spec.rb

@@ -70,6 +70,7 @@ describe JobsController do
     before do
       @failed = Delayed::Job.create(failed_at: Time.now - 1.minute)
       @running = Delayed::Job.create(locked_at: Time.now, locked_by: 'test')
+      @pending = Delayed::Job.create
       sign_in users(:jane)
     end
 
@@ -82,11 +83,13 @@ describe JobsController do
     before do
       @failed = Delayed::Job.create(failed_at: Time.now - 1.minute)
       @running = Delayed::Job.create(locked_at: Time.now, locked_by: 'test')
+      @pending = Delayed::Job.create
       sign_in users(:jane)
     end
 
     it "destroys all jobs" do
       expect { delete :destroy_all }.to change(Delayed::Job, :count).by(-2)
+      expect(Delayed::Job.find(@running.id)).to be
     end
   end
 end