resque-batched-job 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -21,26 +21,6 @@ module Resque
21
21
  def batch(id)
22
22
  "batch:#{id}"
23
23
  end
24
-
25
- #
26
- # Use this method to configure batch locking. By default, all jobs lock
27
- # the batch they belong to. Use
28
- # def lock_batch=(true_or_false)
29
- # @@_lock = true_or_false
30
- # end
31
-
32
- #
33
- # Create the batch lock. This ensures only one worker is processing a
34
- # batch at any given time.
35
- def lock(id)
36
- "lock:batch:#{id}"
37
- end
38
-
39
- #
40
- #
41
- def lock!(id)
42
- redis.setnx(lock(id))
43
- end
44
24
 
45
25
  #
46
26
  # Batch the job. The first argument of a batched job, is the batch id.
@@ -61,16 +41,12 @@ module Resque
61
41
 
62
42
  #
63
43
  # After every job, no matter in the event of success or failure, we need
64
- # to remove the job from the batch set. If batch locking is enabled, remove
65
- # the lock key after each job. This will allow others jobs in a batch to
66
- # be processed.
44
+ # to remove the job from the batch set.
67
45
  def around_perform_amend_batch(id, *args)
68
- return unless redis.setnx(lock(id), true)
69
46
  begin
70
47
  yield
71
48
  ensure
72
49
  redis.srem(batch(id), "#{encode(args)}")
73
- redis.del(lock(id))
74
50
  end
75
51
  end
76
52
 
@@ -1,7 +1,7 @@
1
1
  module Resque
2
2
  module Plugins
3
3
  module BatchedJob
4
- VERSION = '0.1.3'
4
+ VERSION = '0.1.4'
5
5
  end
6
6
  end
7
7
  end
@@ -1,8 +1,9 @@
1
- $:.unshift(File.dirname(__FILE__) + '../lib')
2
-
3
1
  require 'rubygems'
4
2
  require 'test/unit'
5
3
  require 'resque'
4
+
5
+ $:.unshift(File.dirname(__FILE__) + '../lib')
6
+
6
7
  require 'resque/plugins/batched_job'
7
8
 
8
9
  class Job
@@ -12,12 +13,12 @@ class Job
12
13
  @queue = :test
13
14
 
14
15
  def self.perform(batch_id)
15
- $stdout.puts "perform job"
16
+ $stdout.puts "perform batch[#{batch_id}]"
16
17
  sleep 1
17
18
  end
18
19
 
19
20
  def self.after_batch_hook(batch_id)
20
- $stdout.puts "after batch hook"
21
+ $stdout.puts "after_bactch [#{batch_id}]"
21
22
  sleep 1
22
23
  end
23
24
 
@@ -36,7 +37,7 @@ class BatchedJobTest < Test::Unit::TestCase
36
37
  end
37
38
 
38
39
  def test_batched_job
39
- 5.times { Resque.enqueue(Job, 1) }
40
+ 5.times { Resque.enqueue(Job, 1, "arg#{rand(100)}") }
40
41
  worker = Resque::Worker.new(:test)
41
42
  worker.work
42
43
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 1
8
- - 3
9
- version: 0.1.3
8
+ - 4
9
+ version: 0.1.4
10
10
  platform: ruby
11
11
  authors:
12
12
  - Daniel Johnston
@@ -32,8 +32,8 @@ dependencies:
32
32
  version: 1.10.0
33
33
  type: :runtime
34
34
  version_requirements: *id001
35
- description: " Resque plugin that understands individual jobs can belong to something bigger \n\
36
- than themselves.\n"
35
+ description: " Resque plugin for batching jobs. When a batch/group of jobs are complete, \n\
36
+ additional work can be performed usings batch hooks.\n"
37
37
  email: dan@dj-agiledev.com
38
38
  executables: []
39
39