|
383 | 383 | assert_equal(1, Resque.delayed_timestamp_peek(t, 0, 3).length) |
384 | 384 | end |
385 | 385 |
|
386 | | - test 'enqueue_delayed_items_for_timestamp enqueues jobs in 2 batches' do |
387 | | - t = Time.now + 60 |
| 386 | + context "non-batch delayed item queue" do |
| 387 | + batch_disabled = Resque::Scheduler.disable_delayed_requeue_batches |
| 388 | + batch_size = Resque::Scheduler.delayed_requeue_batch_size |
| 389 | + setup do |
| 390 | + Resque::Scheduler.quiet = true |
| 391 | + Resque.data_store.redis.flushall |
| 392 | + Resque::Scheduler.disable_delayed_requeue_batches = true |
| 393 | + Resque::Scheduler.delayed_requeue_batch_size = 1 |
| 394 | + end |
388 | 395 |
|
389 | | - # create 120 jobs |
390 | | - 120.times { Resque.enqueue_at(t, SomeIvarJob) } |
391 | | - assert_equal(120, Resque.delayed_timestamp_size(t)) |
| 396 | + teardown do |
| 397 | + Resque::Scheduler.disable_delayed_requeue_batches = batch_disabled |
| 398 | + Resque::Scheduler.delayed_requeue_batch_size = batch_size |
| 399 | + end |
392 | 400 |
|
393 | | - Resque::Scheduler.enqueue_delayed_items_for_timestamp(t) |
394 | | - assert_equal(0, Resque.delayed_timestamp_size(t)) |
| 401 | + test 'enqueue_delayed_items_for_timestamp enqueues jobs for the timestamp' do |
| 402 | + t = Time.now + 60 |
395 | 403 |
|
396 | | - # assert that the active queue is now 120 |
397 | | - assert_equal(120, Resque.size(Resque.queue_from_class(SomeIvarJob))) |
398 | | - end |
| 404 | + Resque::Scheduler.expects(:enqueue_items_in_batch_for_timestamp).never |
399 | 405 |
|
400 | | - test 'enqueue_delayed_items_for_timestamp enqueues jobs in one batch for the timestamp' do |
401 | | - t = Time.now + 60 |
| 406 | + # create 90 jobs |
| 407 | + 90.times { Resque.enqueue_at(t, SomeIvarJob) } |
| 408 | + assert_equal(90, Resque.delayed_timestamp_size(t)) |
402 | 409 |
|
403 | | - # create 90 jobs |
404 | | - 90.times { Resque.enqueue_at(t, SomeIvarJob) } |
405 | | - assert_equal(90, Resque.delayed_timestamp_size(t)) |
| 410 | + Resque::Scheduler.enqueue_delayed_items_for_timestamp(t) |
| 411 | + assert_equal(0, Resque.delayed_timestamp_size(t)) |
406 | 412 |
|
407 | | - Resque::Scheduler.enqueue_delayed_items_for_timestamp(t) |
408 | | - assert_equal(0, Resque.delayed_timestamp_size(t)) |
| 413 | + # assert that the active queue is now 90 |
| 414 | + assert_equal(90, Resque.size(Resque.queue_from_class(SomeIvarJob))) |
| 415 | + end |
409 | 416 |
|
410 | | - # assert that the active queue is now 90 |
411 | | - assert_equal(90, Resque.size(Resque.queue_from_class(SomeIvarJob))) |
| 417 | + # TODO clean up timestamp tests? |
412 | 418 | end |
413 | 419 |
|
414 | | - # test to make sure the timestamp is cleaned up |
| 420 | + context "batch delayed item queue" do |
| 421 | + batch_disabled = Resque::Scheduler.disable_delayed_requeue_batches |
| 422 | + batch_size = Resque::Scheduler.delayed_requeue_batch_size |
| 423 | + setup do |
| 424 | + Resque::Scheduler.quiet = true |
| 425 | + Resque.data_store.redis.flushall |
| 426 | + Resque::Scheduler.disable_delayed_requeue_batches = false |
| 427 | + Resque::Scheduler.delayed_requeue_batch_size = 100 |
| 428 | + end |
415 | 429 |
|
416 | | - test 'enqueue_delayed_items_for_timestamp handles a watch failure' do |
417 | | - t = Time.now + 60 |
| 430 | + teardown do |
| 431 | + Resque::Scheduler.disable_delayed_requeue_batches = batch_disabled |
| 432 | + Resque::Scheduler.delayed_requeue_batch_size = batch_size |
| 433 | + end |
418 | 434 |
|
419 | | - # create 100 jobs |
420 | | - 100.times { Resque.enqueue_at(t, SomeIvarJob) } |
421 | | - assert_equal(100, Resque.delayed_timestamp_size(t)) |
| 435 | + test 'enqueue_delayed_items_for_timestamp enqueues jobs in 2 batches' do |
| 436 | + t = Time.now + 60 |
422 | 437 |
|
423 | | - Resque.redis.stubs(:watch).returns(nil) |
| 438 | + Resque::Scheduler.expects(:enqueue_next_item).never |
424 | 439 |
|
425 | | - Resque.expects(:clean_up_timestamp).never |
| 440 | + # create 120 jobs |
| 441 | + 120.times { Resque.enqueue_at(t, SomeIvarJob) } |
| 442 | + assert_equal(120, Resque.delayed_timestamp_size(t)) |
426 | 443 |
|
427 | | - Resque::Scheduler.enqueue_delayed_items_for_timestamp(t) |
428 | | - end |
| 444 | + Resque::Scheduler.enqueue_delayed_items_for_timestamp(t) |
| 445 | + assert_equal(0, Resque.delayed_timestamp_size(t)) |
429 | 446 |
|
430 | | - test 'enqueue_delayed_items_for_timestamp cleans up a timestamp' do |
431 | | - t = Time.now + 60 |
| 447 | + # assert that the active queue is now 120 |
| 448 | + assert_equal(120, Resque.size(Resque.queue_from_class(SomeIvarJob))) |
| 449 | + end |
432 | 450 |
|
433 | | - # create 100 jobs |
434 | | - 100.times { Resque.enqueue_at(t, SomeIvarJob) } |
435 | | - assert_equal(100, Resque.delayed_timestamp_size(t)) |
| 451 | + test 'enqueue_delayed_items_for_timestamp enqueues jobs in one batch for the timestamp' do |
| 452 | + t = Time.now + 60 |
436 | 453 |
|
437 | | - Resque.expects(:clean_up_timestamp).once |
| 454 | + Resque::Scheduler.expects(:enqueue_next_item).never |
| 455 | + |
| 456 | + # create 90 jobs |
| 457 | + 90.times { Resque.enqueue_at(t, SomeIvarJob) } |
| 458 | + assert_equal(90, Resque.delayed_timestamp_size(t)) |
| 459 | + |
| 460 | + Resque::Scheduler.enqueue_delayed_items_for_timestamp(t) |
| 461 | + assert_equal(0, Resque.delayed_timestamp_size(t)) |
| 462 | + |
| 463 | + # assert that the active queue is now 90 |
| 464 | + assert_equal(90, Resque.size(Resque.queue_from_class(SomeIvarJob))) |
| 465 | + end |
| 466 | + |
| 467 | + # test to make sure the timestamp is cleaned up |
| 468 | + |
| 469 | + test 'enqueue_delayed_items_for_timestamp handles a watch failure' do |
| 470 | + t = Time.now + 60 |
| 471 | + |
| 472 | + # create 100 jobs |
| 473 | + 100.times { Resque.enqueue_at(t, SomeIvarJob) } |
| 474 | + assert_equal(100, Resque.delayed_timestamp_size(t)) |
| 475 | + |
| 476 | + Resque.redis.stubs(:watch).returns(nil) |
| 477 | + |
| 478 | + Resque.expects(:clean_up_timestamp).never |
| 479 | + |
| 480 | + Resque::Scheduler.enqueue_delayed_items_for_timestamp(t) |
| 481 | + end |
| 482 | + |
| 483 | + test 'enqueue_delayed_items_for_timestamp cleans up a timestamp' do |
| 484 | + t = Time.now + 60 |
| 485 | + |
| 486 | + # create 100 jobs |
| 487 | + 100.times { Resque.enqueue_at(t, SomeIvarJob) } |
| 488 | + assert_equal(100, Resque.delayed_timestamp_size(t)) |
| 489 | + |
| 490 | + Resque.expects(:clean_up_timestamp).once |
| 491 | + |
| 492 | + Resque::Scheduler.enqueue_delayed_items_for_timestamp(t) |
| 493 | + end |
438 | 494 |
|
439 | | - Resque::Scheduler.enqueue_delayed_items_for_timestamp(t) |
440 | 495 | end |
441 | 496 |
|
442 | 497 | test 'enqueue_delayed_items_for_timestamp creates jobs ' \ |
|
0 commit comments