backburner-allq 1.0.48 → 1.0.50

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1cc1ca3dfb947978928b105c72d983339dad44979592aed6fd7915556475af4d
4
- data.tar.gz: 1d4cad4b40e7d4cfec6b547f176f0e1764af4cabce2da280eebb54a075431ee2
3
+ metadata.gz: acf9b46b2b02f7e4e2241ef41f42077b29781a5e861c27c7e82d7e0e1e4510e1
4
+ data.tar.gz: 0ad6e2b7056e53f04d7376d7a24c893c8c90dfa7b6022644f6f4fc2eee935713
5
5
  SHA512:
6
- metadata.gz: 71847829e284ebc3765aeabcdf7ae87f4f21d6615ffc512ce072b96191ceeb8e1a5b7dbd86454796afd2b217b60513638aa5b617e8bf440cc2546642cf06b00c
7
- data.tar.gz: e1a66316f5f301f3190b51a5a725026427b01bdd5178d0c7d74ddcfdb4f80d98c3d0adc91a935b429bf355a49b8f9cbf22cb16a809d1b4c07d07aed4fc3f88a9
6
+ metadata.gz: 8ac82950188d5377de0ae59399849bee1ce3a890a501baedb5c0e3ef021ab62b157491bf23da0cb3a9385162fb1bbde47e2797d217de37d54df6a478a25979a6
7
+ data.tar.gz: c1f6602b23cde86ba7d47153be36b65cb2f0aec45b6a08fab240bd9ab1530327425f0d1307637ab4c8957cc326a2d5331b60aa9753c7963705638bd9bd9b33b4
data/deploy.sh CHANGED
@@ -1,3 +1,3 @@
1
1
  echo "Did you update the version?"
2
2
  gem build backburner-allq.gemspec
3
- gem push backburner-allq-1.0.48.gem
3
+ gem push backburner-allq-1.0.50.gem
data/docker-compose.yml CHANGED
@@ -1,4 +1,5 @@
1
1
  version: '3'
2
+
2
3
  services:
3
4
  allq-client:
4
5
  networks:
@@ -6,10 +7,12 @@ services:
6
7
  image: "blitline/allq_client"
7
8
  environment:
8
9
  - SERVER_STRING=allq-server:5555
10
+ - ALLQ_DEBUG=true
9
11
  depends_on:
10
12
  - allq-server
11
13
  ports:
12
14
  - 8090:8090
15
+ - 7766:7766
13
16
  restart: unless-stopped
14
17
  healthcheck:
15
18
  test: ["CMD-SHELL", "echo '{\"action\":\"peek\",\"params\":{\"tube\":\"default\", \"buried\":true}}' | socat - tcp4-connect:127.0.0.1:7768"]
@@ -91,6 +91,7 @@ module Backburner
91
91
  class AllQWrapper
92
92
  DEFAULT_TIMEOUT = 17_800
93
93
  def initialize(url = 'localhost:8090')
94
+ puts "URL = #{url}"
94
95
  allq_conf = Allq::Configuration.new do |config|
95
96
  config.host = url
96
97
  end
@@ -121,6 +122,10 @@ module Backburner
121
122
  @client.release_put(job.id, delay: delay)
122
123
  end
123
124
 
125
+ def set_children_started(parent_job_id)
126
+ @client.set_children_started_put(parent_job_id)
127
+ end
128
+
124
129
  def bury(job)
125
130
  @client.bury_put(job.id)
126
131
  end
@@ -120,6 +120,7 @@ module Backburner
120
120
  options[:limit] = opt[:limit] if opt[:limit]
121
121
  options[:is_parent] = opt[:is_parent] if opt[:is_parent]
122
122
 
123
+ puts "OPTIONS2 #{options}"
123
124
  # Overwrite originals
124
125
  opt.merge!(options)
125
126
  @allq_wrapper.put(data, options)
@@ -1,5 +1,3 @@
1
- require 'backburner/async_proxy'
2
-
3
1
  module Backburner
4
2
  module Performable
5
3
  def self.included(base)
@@ -1,3 +1,3 @@
1
1
  module Backburner
2
- VERSION = "1.0.48"
2
+ VERSION = "1.0.50"
3
3
  end
@@ -1,5 +1,3 @@
1
- require 'backburner/job'
2
-
3
1
  module Backburner
4
2
  #
5
3
  # @abstract Subclass and override {#process_tube_names}, {#prepare} and {#start} to implement
@@ -35,7 +33,6 @@ module Backburner
35
33
  options[k] = options[k].call job_class, args
36
34
  end
37
35
  end
38
-
39
36
  options[:shard_key] = options[:shard_key].nil? ? 'X' : options[:shard_key].to_s
40
37
  pri = resolve_priority(options[:pri] || job_class)
41
38
  delay = [0, options[:delay].to_i].max
@@ -59,6 +56,7 @@ module Backburner
59
56
  ttr: ttr
60
57
  }
61
58
  options.merge!(send_data)
59
+ puts "OPTIONS #{options}"
62
60
  response = connection.put(tube_name, serialized_data, options)
63
61
  end
64
62
  return nil unless Backburner::Hooks.invoke_hook_events(job_class, :after_enqueue, *args)
data/lib/backburner.rb CHANGED
@@ -2,20 +2,22 @@ require 'allq_rest'
2
2
  require 'json'
3
3
  require 'uri'
4
4
  require 'timeout'
5
- require 'backburner/version'
6
- require 'backburner/allq_wrapper'
7
- require 'backburner/helpers'
8
- require 'backburner/configuration'
9
- require 'backburner/logger'
10
- require 'backburner/connection'
11
- require 'backburner/hooks'
12
- require 'backburner/performable'
5
+ require_relative 'backburner/async_proxy'
6
+ require_relative 'backburner/version'
7
+ require_relative 'backburner/allq_wrapper'
8
+ require_relative 'backburner/helpers'
9
+ require_relative 'backburner/configuration'
10
+ require_relative 'backburner/logger'
11
+ require_relative 'backburner/connection'
12
+ require_relative 'backburner/hooks'
13
+ require_relative 'backburner/performable'
13
14
  require_relative 'backburner/worker'
14
15
  require_relative 'backburner/workers/simple'
15
- require 'backburner/workers/forking'
16
- require 'backburner/workers/threads_on_fork'
17
- require 'backburner/workers/threading'
18
- require 'backburner/queue'
16
+ require_relative 'backburner/workers/forking'
17
+ require_relative 'backburner/workers/threads_on_fork'
18
+ require_relative 'backburner/workers/threading'
19
+ require_relative 'backburner/queue'
20
+ require_relative 'backburner/job'
19
21
 
20
22
  module Backburner
21
23
  class << self
@@ -13,7 +13,8 @@ class TestBackburnerJob
13
13
  end
14
14
  end
15
15
 
16
- class TestWorker < Backburner::Worker; end
16
+ class TestWorker < Backburner::Worker
17
+ end
17
18
 
18
19
  describe 'Backburner module' do
19
20
  before do
@@ -21,29 +22,6 @@ describe 'Backburner module' do
21
22
  clear_jobs!(Backburner.configuration.primary_queue, 'test-plain', 'parent-plain', 'bar.baz.foo')
22
23
  end
23
24
 
24
- describe 'for work method' do
25
- it 'invokes worker simple start' do
26
- Backburner::Workers::Simple.expects(:start).with(%w[foo bar])
27
- Backburner.work('foo', 'bar')
28
- end
29
-
30
- it 'invokes other worker if specified in configuration' do
31
- Backburner.configure { |config| config.default_worker = TestWorker }
32
- TestWorker.expects(:start).with(%w[foo bar])
33
- Backburner.work('foo', 'bar')
34
- end
35
-
36
- it 'invokes other worker if specified in work method as options' do
37
- TestWorker.expects(:start).with(%w[foo bar])
38
- Backburner.work('foo', 'bar', worker: TestWorker)
39
- end
40
-
41
- it 'invokes worker start with no args' do
42
- Backburner::Workers::Simple.expects(:start).with([])
43
- Backburner.work
44
- end
45
- end # work!
46
-
47
25
  describe 'for configuration' do
48
26
  it 'remembers the tube_namespace' do
49
27
  assert_equal 'demo.test', Backburner.configuration.tube_namespace
@@ -65,7 +65,6 @@ describe 'Backburner::Worker module' do
65
65
  worker = Backburner::Workers::Simple.new('demo.test.parent-plain')
66
66
  worker.prepare
67
67
 
68
- TestParentJob.expects(:perform_with_task)
69
68
  job = worker.work_one_job(allq_connection, 'demo.test.parent-plain')
70
69
  assert_equal job.special, "true"
71
70
  end
data/test/test_helper.rb CHANGED
@@ -1,6 +1,8 @@
1
1
  require 'rubygems'
2
2
  require 'tempfile'
3
3
  require 'minitest/autorun'
4
+ require 'mocha/test_unit'
5
+
4
6
  begin
5
7
  require 'mocha/setup'
6
8
  rescue LoadError
data/test/worker_test.rb CHANGED
@@ -1,136 +1,139 @@
1
- require File.expand_path('../test_helper', __FILE__)
1
+ require File.expand_path('test_helper', __dir__)
2
2
 
3
- describe "Backburner::Worker module" do
3
+ describe 'Backburner::Worker module' do
4
4
  before do
5
5
  Backburner.default_queues.clear
6
- clear_jobs!(Backburner.configuration.primary_queue, "test-plain", "test.bar", "bar.baz.foo")
6
+ clear_jobs!(Backburner.configuration.primary_queue, 'test-plain', 'test.bar', 'bar.baz.foo')
7
7
  end
8
8
 
9
- describe "for enqueue class method" do
10
- it "should support enqueuing plain job" do
11
- Backburner::Worker.enqueue TestPlainJob, [7, 9], :ttr => 100, :pri => 2000
12
- pop_one_job("test-plain") do |job, body|
13
- assert_equal "TestPlainJob", body["class"]
14
- assert_equal [7, 9], body["args"]
9
+ describe 'for enqueue class method' do
10
+ it 'should support enqueuing plain job' do
11
+ Backburner::Worker.enqueue TestPlainJob, [7, 9], ttr: 100, pri: 2000
12
+ pop_one_job('test-plain') do |job, body|
13
+ assert_equal 'TestPlainJob', body['class']
14
+ assert_equal [7, 9], body['args']
15
15
  assert_equal 100, job.ttr
16
16
  assert_equal 2000, job.pri
17
17
  end
18
18
  end # plain
19
19
 
20
- it "should support enqueuing job with class queue priority" do
21
- Backburner::Worker.enqueue TestJob, [3, 4], :ttr => 100
20
+ it 'should support enqueuing job with class queue priority' do
21
+ Backburner::Worker.enqueue TestJob, [3, 4], ttr: 100
22
22
  pop_one_job do |job, body|
23
- assert_equal "TestJob", body["class"]
24
- assert_equal [3, 4], body["args"]
23
+ assert_equal 'TestJob', body['class']
24
+ assert_equal [3, 4], body['args']
25
25
  assert_equal 100, job.ttr
26
26
  assert_equal 100, job.pri
27
27
  end
28
28
  end # queue priority
29
29
 
30
- it "should support enqueuing job with specified named priority" do
31
- Backburner::Worker.enqueue TestJob, [3, 4], :ttr => 100, :pri => 'high'
30
+ it 'should support enqueuing job with specified named priority' do
31
+ Backburner::Worker.enqueue TestJob, [3, 4], ttr: 100, pri: 'high'
32
32
  pop_one_job do |job, body|
33
- assert_equal "TestJob", body["class"]
34
- assert_equal [3, 4], body["args"]
33
+ assert_equal 'TestJob', body['class']
34
+ assert_equal [3, 4], body['args']
35
35
  assert_equal 100, job.ttr
36
36
  assert_equal 0, job.pri
37
37
  end
38
38
  end # queue named priority
39
39
 
40
- it "should support enqueuing job with class queue respond_timeout" do
40
+ it 'should support enqueuing job with class queue respond_timeout' do
41
41
  Backburner::Worker.enqueue TestJob, [3, 4]
42
42
  pop_one_job do |job, body|
43
- assert_equal "TestJob", body["class"]
44
- assert_equal [3, 4], body["args"]
43
+ assert_equal 'TestJob', body['class']
44
+ assert_equal [3, 4], body['args']
45
45
  assert_equal 300, job.ttr
46
46
  assert_equal 100, job.pri
47
47
  end
48
48
  end # queue respond_timeout
49
49
 
50
- it "should support enqueuing job with custom queue" do
51
- Backburner::Worker.enqueue TestJob, [6, 7], :queue => "test.bar", :pri => 5000
52
- pop_one_job("test.bar") do |job, body|
53
- assert_equal "TestJob", body["class"]
54
- assert_equal [6, 7], body["args"]
50
+ it 'should support enqueuing job with custom queue' do
51
+ Backburner::Worker.enqueue TestJob, [6, 7], queue: 'test.bar', pri: 5000
52
+ pop_one_job('test.bar') do |job, body|
53
+ assert_equal 'TestJob', body['class']
54
+ assert_equal [6, 7], body['args']
55
55
  assert_equal 0, job.delay
56
56
  assert_equal 5000, job.pri
57
57
  assert_equal 300, job.ttr
58
58
  end
59
59
  end # custom
60
60
 
61
- it "should support async job" do
62
- TestAsyncJob.async(:ttr => 100, :queue => "bar.baz.foo").foo(10, 5)
63
- pop_one_job("bar.baz.foo") do |job, body|
64
- assert_equal "TestAsyncJob", body["class"]
65
- assert_equal [nil, "foo", 10, 5], body["args"]
61
+ it 'should support async job' do
62
+ TestAsyncJob.async(ttr: 100, queue: 'bar.baz.foo').foo(10, 5)
63
+ pop_one_job('bar.baz.foo') do |job, body|
64
+ assert_equal 'TestAsyncJob', body['class']
65
+ assert_equal [nil, 'foo', 10, 5], body['args']
66
66
  assert_equal 100, job.ttr
67
67
  assert_equal Backburner.configuration.default_priority, job.pri
68
68
  end
69
69
  end # async
70
70
 
71
- it "should support enqueueing job with lambda queue" do
71
+ it 'should support enqueueing job with lambda queue' do
72
72
  expected_queue_name = TestLambdaQueueJob.calculated_queue_name
73
- Backburner::Worker.enqueue TestLambdaQueueJob, [6, 7], :queue => lambda { |klass| klass.calculated_queue_name }
74
- pop_one_job(expected_queue_name) do |job, body|
75
- assert_equal "TestLambdaQueueJob", body["class"]
76
- assert_equal [6, 7], body["args"]
73
+ Backburner::Worker.enqueue TestLambdaQueueJob, [6, 7], queue: ->(klass) { klass.calculated_queue_name }
74
+ pop_one_job(expected_queue_name) do |_job, body|
75
+ assert_equal 'TestLambdaQueueJob', body['class']
76
+ assert_equal [6, 7], body['args']
77
77
  end
78
78
  end
79
79
  end # enqueue
80
80
 
81
- describe "for start class method" do
82
- it "should initialize and start the worker instance" do
83
- ech = stub
84
- Backburner::Worker.expects(:new).with("foo").returns(ech)
85
- ech.expects(:start)
86
- Backburner::Worker.start("foo")
87
- end
88
- end # start
89
-
90
- describe "for tube_names accessor" do
81
+ # describe "for start class method" do
82
+ # it "should initialize and start the worker instance" do
83
+ # ech = stub
84
+ # Backburner::Worker.expects(:new).with("foo").returns(ech)
85
+ # ech.expects(:start)
86
+ # Backburner::Worker.start("foo")
87
+ # object = mock()
88
+ # object.expects(:expected_method).with() { |value| value % 4 == 0 }
89
+ # object.expected_method(16)
90
+ # end
91
+ # end # start
92
+
93
+ describe 'for tube_names accessor' do
91
94
  before do
92
- Backburner.default_queues << "baz"
93
- Backburner.default_queues << "bam"
95
+ Backburner.default_queues << 'baz'
96
+ Backburner.default_queues << 'bam'
94
97
  end
95
98
 
96
- it "supports retrieving tubes" do
97
- worker = Backburner::Worker.new(["foo", "bar"])
98
- assert_equal ["foo", "bar"], worker.tube_names
99
+ it 'supports retrieving tubes' do
100
+ worker = Backburner::Worker.new(%w[foo bar])
101
+ assert_equal %w[foo bar], worker.tube_names
99
102
  end
100
103
 
101
- it "supports single tube array arg" do
102
- worker = Backburner::Worker.new([["foo", "bar"]])
103
- assert_equal ["foo", "bar"], worker.tube_names
104
+ it 'supports single tube array arg' do
105
+ worker = Backburner::Worker.new([%w[foo bar]])
106
+ assert_equal %w[foo bar], worker.tube_names
104
107
  end
105
108
 
106
- it "supports empty nil array arg with default values" do
109
+ it 'supports empty nil array arg with default values' do
107
110
  worker = Backburner::Worker.new([nil])
108
- assert_equal ['baz', 'bam'], worker.tube_names
111
+ assert_equal %w[baz bam], worker.tube_names
109
112
  end
110
113
 
111
- it "supports single tube arg" do
112
- worker = Backburner::Worker.new("foo")
113
- assert_equal ["foo"], worker.tube_names
114
+ it 'supports single tube arg' do
115
+ worker = Backburner::Worker.new('foo')
116
+ assert_equal ['foo'], worker.tube_names
114
117
  end
115
118
 
116
- it "supports empty array arg with default values" do
119
+ it 'supports empty array arg with default values' do
117
120
  worker = Backburner::Worker.new([])
118
- assert_equal ['baz', 'bam'], worker.tube_names
121
+ assert_equal %w[baz bam], worker.tube_names
119
122
  end
120
123
 
121
- it "supports nil arg with default values" do
124
+ it 'supports nil arg with default values' do
122
125
  worker = Backburner::Worker.new(nil)
123
- assert_equal ['baz', 'bam'], worker.tube_names
126
+ assert_equal %w[baz bam], worker.tube_names
124
127
  end
125
128
  end # tube_names
126
129
 
127
- describe "for custom serialization" do
130
+ describe 'for custom serialization' do
128
131
  before do
129
132
  Backburner.configure do |config|
130
133
  @old_parser = config.job_parser_proc
131
134
  @old_serializer = config.job_serializer_proc
132
- config.job_parser_proc = lambda { |body| Marshal.load(body) }
133
- config.job_serializer_proc = lambda { |body| Marshal.dump(body) }
135
+ config.job_parser_proc = ->(body) { Marshal.load(body) }
136
+ config.job_serializer_proc = ->(body) { Marshal.dump(body) }
134
137
  end
135
138
  end
136
139
 
@@ -142,10 +145,10 @@ describe "Backburner::Worker module" do
142
145
  end
143
146
  end
144
147
 
145
- it "should support enqueuing a job" do
146
- Backburner::Worker.enqueue TestPlainJob, [7, 9], :ttr => 100, :pri => 2000
147
- pop_one_job("test-plain") do |job, body|
148
- assert_equal "TestPlainJob", body[:class]
148
+ it 'should support enqueuing a job' do
149
+ Backburner::Worker.enqueue TestPlainJob, [7, 9], ttr: 100, pri: 2000
150
+ pop_one_job('test-plain') do |job, body|
151
+ assert_equal 'TestPlainJob', body[:class]
149
152
  assert_equal [7, 9], body[:args]
150
153
  assert_equal 100, job.ttr
151
154
  assert_equal 2000, job.pri
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: backburner-allq
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.48
4
+ version: 1.0.50
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jason Malcolm
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-05-17 00:00:00.000000000 Z
11
+ date: 2024-09-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: allq_rest
@@ -193,7 +193,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
193
193
  - !ruby/object:Gem::Version
194
194
  version: '0'
195
195
  requirements: []
196
- rubygems_version: 3.0.9
196
+ rubygems_version: 3.2.33
197
197
  signing_key:
198
198
  specification_version: 4
199
199
  summary: Reliable allq background job processing made easy for Ruby and Sinatra