diff --git a/Gemfile.lock b/Gemfile.lock index 2c556a0f..fa1ad5bf 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -109,7 +109,7 @@ GEM psych (5.2.2) date stringio - puma (6.4.3) + puma (7.0.2) nio4r (~> 2.0) raabro (1.4.0) racc (1.8.1) @@ -203,7 +203,7 @@ DEPENDENCIES mocha mysql2 pg - puma + puma (~> 7.0) rdoc rubocop-rails-omakase solid_queue! diff --git a/lib/puma/plugin/solid_queue.rb b/lib/puma/plugin/solid_queue.rb index eca5fa5f..434b8f65 100644 --- a/lib/puma/plugin/solid_queue.rb +++ b/lib/puma/plugin/solid_queue.rb @@ -11,15 +11,27 @@ def start(launcher) monitor_solid_queue end - launcher.events.on_booted do - @solid_queue_pid = fork do - Thread.new { monitor_puma } - SolidQueue::Supervisor.start + if Gem::Version.new(Puma::Const::VERSION) < Gem::Version.new("7") + launcher.events.on_booted do + @solid_queue_pid = fork do + Thread.new { monitor_puma } + SolidQueue::Supervisor.start + end + end + + launcher.events.on_stopped { stop_solid_queue } + launcher.events.on_restart { stop_solid_queue } + else + launcher.events.after_booted do + @solid_queue_pid = fork do + Thread.new { monitor_puma } + SolidQueue::Supervisor.start + end end - end - launcher.events.on_stopped { stop_solid_queue } - launcher.events.on_restart { stop_solid_queue } + launcher.events.after_stopped { stop_solid_queue } + launcher.events.before_restart { stop_solid_queue } + end end private diff --git a/solid_queue.gemspec b/solid_queue.gemspec index 72086bb1..da133554 100644 --- a/solid_queue.gemspec +++ b/solid_queue.gemspec @@ -35,7 +35,7 @@ Gem::Specification.new do |spec| spec.add_development_dependency "appraisal" spec.add_development_dependency "debug", "~> 1.9" spec.add_development_dependency "mocha" - spec.add_development_dependency "puma" + spec.add_development_dependency "puma", "~> 7.0" spec.add_development_dependency "mysql2" spec.add_development_dependency "pg" spec.add_development_dependency "sqlite3"