diff --git a/app/services/modbus/polling_service.rb b/app/services/modbus/polling_service.rb index 710705f..37fce95 100644 --- a/app/services/modbus/polling_service.rb +++ b/app/services/modbus/polling_service.rb @@ -5,7 +5,7 @@ module Modbus class PollingService class << self def start - return if defined?(@scheduler) && @scheduler&.running? + return if defined?(@scheduler) && @scheduler.jobs.any? puts "[#{Time.current}] Modbus polling service 시작됨 (Rufus)" @scheduler = Rufus::Scheduler.new @@ -20,12 +20,16 @@ module Modbus end def stop - @scheduler&.shutdown - puts "[#{Time.current}] Modbus polling service 중지됨" + if defined?(@scheduler) + @scheduler.shutdown(:kill) + puts "[#{Time.current}] Modbus polling service 중지됨" + else + puts "[#{Time.current}] Scheduler 인스턴스 없음" + end end def running? - @scheduler&.running? + defined?(@scheduler) && @scheduler.jobs.any? end private