@@ -391,114 +391,6 @@ def assert_resque_key_exists?(key)
391391 assert_equal ( 1 , Resque . delayed_timestamp_peek ( t , 0 , 3 ) . length )
392392 end
393393
394- context 'non-batch delayed item queue' do
395- batch_disabled = Resque ::Scheduler . disable_delayed_requeue_batches
396- batch_size = Resque ::Scheduler . delayed_requeue_batch_size
397- setup do
398- Resque ::Scheduler . quiet = true
399- Resque . data_store . redis . flushall
400- Resque ::Scheduler . disable_delayed_requeue_batches = true
401- Resque ::Scheduler . delayed_requeue_batch_size = 1
402- end
403-
404- teardown do
405- Resque ::Scheduler . disable_delayed_requeue_batches = batch_disabled
406- Resque ::Scheduler . delayed_requeue_batch_size = batch_size
407- end
408-
409- test 'enqueue_delayed_items_for_timestamp enqueues jobs for the timestamp' do
410- t = Time . now + 60
411-
412- Resque ::Scheduler . expects ( :enqueue_items_in_batch_for_timestamp ) . never
413-
414- # create 90 jobs
415- 90 . times { Resque . enqueue_at ( t , SomeIvarJob ) }
416- assert_equal ( 90 , Resque . delayed_timestamp_size ( t ) )
417-
418- Resque ::Scheduler . enqueue_delayed_items_for_timestamp ( t )
419- assert_equal ( 0 , Resque . delayed_timestamp_size ( t ) )
420-
421- # assert that the active queue is now 90
422- assert_equal ( 90 , Resque . size ( Resque . queue_from_class ( SomeIvarJob ) ) )
423- end
424- end
425-
426- context 'batch delayed item queue' do
427- batch_disabled = Resque ::Scheduler . disable_delayed_requeue_batches
428- batch_size = Resque ::Scheduler . delayed_requeue_batch_size
429- setup do
430- Resque ::Scheduler . quiet = true
431- Resque . data_store . redis . flushall
432- Resque ::Scheduler . disable_delayed_requeue_batches = false
433- Resque ::Scheduler . delayed_requeue_batch_size = 100
434- end
435-
436- teardown do
437- Resque ::Scheduler . disable_delayed_requeue_batches = batch_disabled
438- Resque ::Scheduler . delayed_requeue_batch_size = batch_size
439- end
440-
441- test 'enqueue_delayed_items_for_timestamp enqueues jobs in 2 batches' do
442- t = Time . now + 60
443-
444- Resque ::Scheduler . expects ( :enqueue_next_item ) . never
445-
446- # create 120 jobs
447- 120 . times { Resque . enqueue_at ( t , SomeIvarJob ) }
448- assert_equal ( 120 , Resque . delayed_timestamp_size ( t ) )
449-
450- Resque ::Scheduler . enqueue_delayed_items_for_timestamp ( t )
451- assert_equal ( 0 , Resque . delayed_timestamp_size ( t ) )
452-
453- # assert that the active queue is now 120
454- assert_equal ( 120 , Resque . size ( Resque . queue_from_class ( SomeIvarJob ) ) )
455- end
456-
457- test 'enqueue_delayed_items_for_timestamp enqueues jobs in one batch for the timestamp' do
458- t = Time . now + 60
459-
460- Resque ::Scheduler . expects ( :enqueue_next_item ) . never
461-
462- # create 90 jobs
463- 90 . times { Resque . enqueue_at ( t , SomeIvarJob ) }
464- assert_equal ( 90 , Resque . delayed_timestamp_size ( t ) )
465-
466- Resque ::Scheduler . enqueue_delayed_items_for_timestamp ( t )
467- assert_equal ( 0 , Resque . delayed_timestamp_size ( t ) )
468-
469- # assert that the active queue is now 90
470- assert_equal ( 90 , Resque . size ( Resque . queue_from_class ( SomeIvarJob ) ) )
471- end
472-
473- # test to make sure the timestamp is cleaned up
474-
475- test 'enqueue_delayed_items_for_timestamp handles a watch failure' do
476- t = Time . now + 60
477-
478- # create 100 jobs
479- 100 . times { Resque . enqueue_at ( t , SomeIvarJob ) }
480- assert_equal ( 100 , Resque . delayed_timestamp_size ( t ) )
481-
482- Resque . redis . stubs ( :watch ) . returns ( nil )
483-
484- Resque . expects ( :clean_up_timestamp ) . never
485-
486- Resque ::Scheduler . enqueue_delayed_items_for_timestamp ( t )
487- end
488-
489- test 'enqueue_delayed_items_for_timestamp cleans up a timestamp' do
490- t = Time . now + 60
491-
492- # create 100 jobs
493- 100 . times { Resque . enqueue_at ( t , SomeIvarJob ) }
494- assert_equal ( 100 , Resque . delayed_timestamp_size ( t ) )
495-
496- Resque . expects ( :clean_up_timestamp ) . once
497-
498- Resque ::Scheduler . enqueue_delayed_items_for_timestamp ( t )
499- end
500- end
501-
502394 test 'enqueue_delayed_items_for_timestamp creates jobs ' \
503395 'and empties the delayed queue' do
504396 t = Time . now + 60
@@ -1170,3 +1062,113 @@ def assert_resque_key_exists?(key)
11701062 assert !Resque . delayed? ( SomeJob )
11711063 end
11721064end
1065+
1066+ context 'DelayedQueue non-batch delayed item queue' do
1067+ batch_disabled = Resque ::Scheduler . disable_delayed_requeue_batches
1068+ batch_size = Resque ::Scheduler . delayed_requeue_batch_size
1069+ setup do
1070+ Resque ::Scheduler . quiet = true
1071+ Resque . data_store . redis . flushall
1072+ Resque ::Scheduler . disable_delayed_requeue_batches = true
1073+ Resque ::Scheduler . delayed_requeue_batch_size = 1
1074+ end
1075+
1076+ teardown do
1077+ Resque ::Scheduler . disable_delayed_requeue_batches = batch_disabled
1078+ Resque ::Scheduler . delayed_requeue_batch_size = batch_size
1079+ end
1080+
1081+ test 'enqueue_delayed_items_for_timestamp enqueues jobs for the timestamp' do
1082+ t = Time . now + 60
1083+
1084+ # create 90 jobs at t
1085+ 90 . times { Resque . enqueue_at ( t , SomeIvarJob ) }
1086+ assert_equal ( 90 , Resque . delayed_timestamp_size ( t ) )
1087+ assert_equal ( 0 , Resque . size ( Resque . queue_from_class ( SomeIvarJob ) ) )
1088+
1089+ Resque ::Scheduler . expects ( :enqueue_items_in_batch_for_timestamp ) . never
1090+
1091+ Resque ::Scheduler . enqueue_delayed_items_for_timestamp ( t )
1092+
1093+ # assert that the active queue is now 90
1094+ assert_equal ( 0 , Resque . delayed_timestamp_size ( t ) )
1095+ assert_equal ( 90 , Resque . size ( Resque . queue_from_class ( SomeIvarJob ) ) )
1096+ end
1097+ end
1098+
1099+ context 'DelayedQueue batch delayed item queue' do
1100+ batch_disabled = Resque ::Scheduler . disable_delayed_requeue_batches
1101+ batch_size = Resque ::Scheduler . delayed_requeue_batch_size
1102+ setup do
1103+ Resque ::Scheduler . quiet = true
1104+ Resque . data_store . redis . flushall
1105+ Resque ::Scheduler . disable_delayed_requeue_batches = false
1106+ Resque ::Scheduler . delayed_requeue_batch_size = 100
1107+ end
1108+
1109+ teardown do
1110+ Resque ::Scheduler . disable_delayed_requeue_batches = batch_disabled
1111+ Resque ::Scheduler . delayed_requeue_batch_size = batch_size
1112+ end
1113+
1114+ test 'enqueue_delayed_items_for_timestamp enqueues jobs in 2 batches' do
1115+ t = Time . now + 60
1116+
1117+ # create 120 jobs
1118+ 120 . times { Resque . enqueue_at ( t , SomeIvarJob ) }
1119+ assert_equal ( 120 , Resque . delayed_timestamp_size ( t ) )
1120+ assert_equal ( 0 , Resque . size ( Resque . queue_from_class ( SomeIvarJob ) ) )
1121+
1122+ Resque ::Scheduler . expects ( :enqueue_next_item ) . never
1123+
1124+ Resque ::Scheduler . enqueue_delayed_items_for_timestamp ( t )
1125+
1126+ # assert that the active queue is now 120
1127+ assert_equal ( 0 , Resque . delayed_timestamp_size ( t ) )
1128+ assert_equal ( 120 , Resque . size ( Resque . queue_from_class ( SomeIvarJob ) ) )
1129+ end
1130+
1131+ test 'enqueue_delayed_items_for_timestamp enqueues jobs in one batch for the timestamp' do
1132+ t = Time . now + 60
1133+
1134+ # create 90 jobs
1135+ 90 . times { Resque . enqueue_at ( t , SomeIvarJob ) }
1136+ assert_equal ( 90 , Resque . delayed_timestamp_size ( t ) )
1137+ assert_equal ( 0 , Resque . size ( Resque . queue_from_class ( SomeIvarJob ) ) )
1138+
1139+ Resque ::Scheduler . expects ( :enqueue_next_item ) . never
1140+
1141+ Resque ::Scheduler . enqueue_delayed_items_for_timestamp ( t )
1142+
1143+ # assert that the active queue is now 90
1144+ assert_equal ( 0 , Resque . delayed_timestamp_size ( t ) )
1145+ assert_equal ( 90 , Resque . size ( Resque . queue_from_class ( SomeIvarJob ) ) )
1146+ end
1147+
1148+ # test to make sure the timestamp is cleaned up
1149+ test 'enqueue_delayed_items_for_timestamp handles a watch failure' do
1150+ t = Time . now + 60
1151+
1152+ # create 100 jobs
1153+ 100 . times { Resque . enqueue_at ( t , SomeIvarJob ) }
1154+ assert_equal ( 100 , Resque . delayed_timestamp_size ( t ) )
1155+
1156+ Resque . redis . stubs ( :watch ) . returns ( nil )
1157+
1158+ Resque . expects ( :clean_up_timestamp ) . never
1159+
1160+ Resque ::Scheduler . enqueue_delayed_items_for_timestamp ( t )
1161+ end
1162+
1163+ test 'enqueue_delayed_items_for_timestamp cleans up a timestamp' do
1164+ t = Time . now + 60
1165+
1166+ # create 100 jobs
1167+ 100 . times { Resque . enqueue_at ( t , SomeIvarJob ) }
1168+ assert_equal ( 100 , Resque . delayed_timestamp_size ( t ) )
1169+
1170+ Resque . expects ( :clean_up_timestamp ) . once
1171+
1172+ Resque ::Scheduler . enqueue_delayed_items_for_timestamp ( t )
1173+ end
1174+ end
0 commit comments