diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml
new file mode 100644
index 0000000..fc01457
--- /dev/null
+++ b/.idea/dataSources.xml
@@ -0,0 +1,12 @@
+
+
+
+
+ sqlite.xerial
+ true
+ org.sqlite.JDBC
+ jdbc:sqlite:$PROJECT_DIR$/storage/development.sqlite3
+ $ProjectFileDir$
+
+
+
\ No newline at end of file
diff --git a/.idea/sqldialects.xml b/.idea/sqldialects.xml
new file mode 100644
index 0000000..51559ac
--- /dev/null
+++ b/.idea/sqldialects.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/controllers/schedules_controller.rb b/app/controllers/schedules_controller.rb
index 3a29118..4390cb1 100644
--- a/app/controllers/schedules_controller.rb
+++ b/app/controllers/schedules_controller.rb
@@ -30,6 +30,14 @@ class SchedulesController < ApplicationController
end
end
+ def reset
+ Schedule.delete_all
+ ActiveRecord::Base.connection.execute("DELETE FROM sqlite_sequence WHERE name='schedules'")
+ Rails.application.load_seed
+
+ redirect_to schedules_path, notice: "스케줄이 초기화되었습니다."
+ end
+
def schedule_edit
@schedule = Schedule.order(:hour, :minute)
end
diff --git a/app/services/modbus/polling_service.rb b/app/services/modbus/polling_service.rb
index 37fce95..1b0fe2c 100644
--- a/app/services/modbus/polling_service.rb
+++ b/app/services/modbus/polling_service.rb
@@ -5,10 +5,10 @@ module Modbus
class PollingService
class << self
def start
- return if defined?(@scheduler) && @scheduler.jobs.any?
+ return if @scheduler && @scheduler.jobs.any?
puts "[#{Time.current}] Modbus polling service 시작됨 (Rufus)"
- @scheduler = Rufus::Scheduler.new
+ @scheduler ||= Rufus::Scheduler.new
@scheduler.cron "0 * * * * *" do
now = Time.now
@@ -22,6 +22,7 @@ module Modbus
def stop
if defined?(@scheduler)
@scheduler.shutdown(:kill)
+ @scheduler = nil
puts "[#{Time.current}] Modbus polling service 중지됨"
else
puts "[#{Time.current}] Scheduler 인스턴스 없음"
@@ -29,7 +30,7 @@ module Modbus
end
def running?
- defined?(@scheduler) && @scheduler.jobs.any?
+ @scheduler && @scheduler.jobs.any?
end
private
diff --git a/app/views/schedules/schedule_edit.html.erb b/app/views/schedules/schedule_edit.html.erb
index 737d0ba..8aebd07 100644
--- a/app/views/schedules/schedule_edit.html.erb
+++ b/app/views/schedules/schedule_edit.html.erb
@@ -39,9 +39,15 @@
<%= submit_tag "업데이트", class: "btn bg-primary" %>
<% end %>
+
+ <%= button_to "초기화", reset_schedules_path,
+ method: :post,
+ data: { turbo_confirm: "정말 초기화하시겠습니까? 모든 스케줄 데이터가 삭제됩니다." },
+ class: "btn bg-danger" %>
+
<%= button_to "추가하기", open_modals_path(type: "add_schedule"),
- class: "btn btn-default",
+ class: "btn bg-default-slate",
data: {
turbo_method: :post,
turbo_frame: "modals"
diff --git a/config/routes.rb b/config/routes.rb
index 3d06b4e..afeff1f 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -15,6 +15,7 @@ Rails.application.routes.draw do
resources :schedules do
collection do
+ post "reset"
get "schedule_edit"
post "schedule_edit_update"
end
@@ -24,8 +25,6 @@ Rails.application.routes.draw do
collection do
post "start"
post "stop"
- get "schedule_edit"
- post "schedule_edit_update"
end
end