33class SchedulerTest < ActiveSupport ::TestCase
44 self . use_transactional_tests = false
55
6- test "recurring schedule" do
6+ test "recurring schedule (only static) " do
77 recurring_tasks = { example_task : { class : "AddToBufferJob" , schedule : "every hour" , args : 42 } }
88 scheduler = SolidQueue ::Scheduler . new ( recurring_tasks : recurring_tasks ) . tap ( &:start )
99
@@ -17,6 +17,41 @@ class SchedulerTest < ActiveSupport::TestCase
1717 scheduler . stop
1818 end
1919
20+ test "recurring schedule (only dynamic)" do
21+ SolidQueue ::RecurringTask . create (
22+ key : "dynamic_task" , static : false , class_name : "AddToBufferJob" , schedule : "every second" , arguments : [ 42 ]
23+ )
24+ scheduler = SolidQueue ::Scheduler . new ( recurring_tasks : { } ) . tap ( &:start )
25+
26+ wait_for_registered_processes ( 1 , timeout : 1 . second )
27+
28+ process = SolidQueue ::Process . first
29+ assert_equal "Scheduler" , process . kind
30+
31+ assert_metadata process , recurring_schedule : [ "dynamic_task" ]
32+ ensure
33+ scheduler . stop
34+ end
35+
36+ test "recurring schedule (static + dynamic)" do
37+ SolidQueue ::RecurringTask . create (
38+ key : "dynamic_task" , static : false , class_name : "AddToBufferJob" , schedule : "every second" , arguments : [ 42 ]
39+ )
40+
41+ recurring_tasks = { static_task : { class : "AddToBufferJob" , schedule : "every hour" , args : 42 } }
42+
43+ scheduler = SolidQueue ::Scheduler . new ( recurring_tasks : recurring_tasks ) . tap ( &:start )
44+
45+ wait_for_registered_processes ( 1 , timeout : 1 . second )
46+
47+ process = SolidQueue ::Process . first
48+ assert_equal "Scheduler" , process . kind
49+
50+ assert_metadata process , recurring_schedule : [ "static_task" , "dynamic_task" ]
51+ ensure
52+ scheduler . stop
53+ end
54+
2055 test "run more than one instance of the scheduler with recurring tasks" do
2156 recurring_tasks = { example_task : { class : "AddToBufferJob" , schedule : "every second" , args : 42 } }
2257 schedulers = 2 . times . collect do
0 commit comments