Skip to content

Commit b4f7c99

Browse files
committed
Clean a bit top-level SolidQueue methods to manage dynamic tasks
1 parent 3d36ca4 commit b4f7c99

2 files changed

Lines changed: 10 additions & 2 deletions

File tree

app/models/solid_queue/recurring_task.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,14 @@ def from_configuration(key, **options)
3636
static: options.fetch(:static, true)
3737
end
3838

39+
def create_dynamic_task(key, **options)
40+
from_configuration(key, **options.reverse_merge(static: false)).save!
41+
end
42+
43+
def delete_dynamic_task(key)
44+
RecurringTask.dynamic.find_by!(key: key).destroy
45+
end
46+
3947
def create_or_update_all(tasks)
4048
if supports_insert_conflict_target?
4149
# PostgreSQL fails and aborts the current transaction when it hits a duplicate key conflict

lib/solid_queue.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,11 @@ module SolidQueue
4444
delegate :on_start, :on_stop, :on_exit, to: Supervisor
4545

4646
def schedule_recurring_task(key, **options)
47-
RecurringTask.from_configuration(key, **options, static: false).tap(&:save!)
47+
RecurringTask.create_dynamic_task(key, **options)
4848
end
4949

5050
def unschedule_recurring_task(key)
51-
RecurringTask.dynamic.find_by!(key:).destroy
51+
RecurringTask.delete_dynamic_task(key)
5252
end
5353

5454
[ Dispatcher, Scheduler, Worker ].each do |process|

0 commit comments

Comments
 (0)