diff --git a/config/initializers/099-defer.rb b/config/initializers/099-defer.rb new file mode 100644 index 00000000000..9d020433c1d --- /dev/null +++ b/config/initializers/099-defer.rb @@ -0,0 +1 @@ +require_dependency 'scheduler/defer' diff --git a/config/initializers/099-unicorn.rb b/config/initializers/099-unicorn.rb deleted file mode 100644 index e6152b69d70..00000000000 --- a/config/initializers/099-unicorn.rb +++ /dev/null @@ -1,7 +0,0 @@ -require_dependency 'scheduler/defer' - -if defined? Unicorn::HttpServer - ObjectSpace.each_object(Unicorn::HttpServer) do |s| - s.extend(Scheduler::Defer::Unicorn) - end -end diff --git a/lib/scheduler/defer.rb b/lib/scheduler/defer.rb index 6346b16dae1..e63cde145a0 100644 --- a/lib/scheduler/defer.rb +++ b/lib/scheduler/defer.rb @@ -8,6 +8,10 @@ module Scheduler @thread = nil end + def length + @queue.length + end + def pause stop! @paused = true @@ -80,16 +84,6 @@ module Scheduler end class Defer - - module Unicorn - def process_client(client) - Defer.pause - super(client) - Defer.do_all_work - Defer.resume - end - end - extend Deferrable initialize end diff --git a/spec/components/scheduler/defer_spec.rb b/spec/components/scheduler/defer_spec.rb index c00829b3c34..e7f57315e6f 100644 --- a/spec/components/scheduler/defer_spec.rb +++ b/spec/components/scheduler/defer_spec.rb @@ -31,6 +31,8 @@ describe Scheduler::Defer do x = 2 end + expect(@defer.length).to eq(1) + @defer.do_all_work expect(x).to eq(2)