queue_classic_plus 4.0.0.alpha8 → 4.0.0.alpha9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 69af5e1cbbcc08c7cd0acad4c0f06e112a9fff09756a06c9ae2ffd80a71ab39a
4
- data.tar.gz: cd3cc486050b9de66397099f81e0277aac83f5469bb925456527b331dec85a6a
3
+ metadata.gz: 998da8f0e2f5f397e1125b9f47f447ba3cdb17908e79bb4eb9d34a5acb87f7d8
4
+ data.tar.gz: fb21b8b1175142d27792885d814597c145b68fe2e82e8541d6db78a000c30a86
5
5
  SHA512:
6
- metadata.gz: 8d3980cb5a576ff5681812a2e5d7497c35ff98dc84934778f4dd3c867643e10e9d87a38499bad6850cc72d1c4cd519a91a2509011f8ad916e78b10be3c2e076e
7
- data.tar.gz: c31d0baa284b76731b268e29ab21b3ae0e679f7404345d3b449fb755a34df11100d6f6790a6f9e0dfb373ed908a8fa365575d88184f96d28a079270be5e67605
6
+ metadata.gz: 84850b2d1be63a0127adf54eab5d810b6fde5de1d9ee2826a2121f76343fc3442cac74de674858234fcf5ae1f25c418f70d578e242280f83485a892e935f13e3
7
+ data.tar.gz: 1e2e3b3ca6d2280c5aa445737b7179e2bd7f800c8c5a971d81fc3978f753189f437c99fe6ea81b7d69c079b631e4da41c1adf09032f9fe92863c8003e3fd8ee4
data/README.md CHANGED
@@ -169,3 +169,7 @@ require "queue_classic_plus/datadog"
169
169
  ```
170
170
  createdb queue_classic_plus_test
171
171
  ```
172
+
173
+ ## Releasing
174
+
175
+ Releasing is done in CircleCI via the `push_to_rubygems`, triggered by pushing a tagged commit. To do so, simply [create a new GitHub release](https://github.com/rainforestapp/queue_classic_plus/releases/new).
@@ -1,3 +1,3 @@
1
1
  module QueueClassicPlus
2
- VERSION = '4.0.0.alpha8'.freeze
2
+ VERSION = '4.0.0.alpha9'.freeze
3
3
  end
@@ -25,13 +25,14 @@ module QueueClassicPlus
25
25
  end
26
26
 
27
27
  @failed_job = job
28
- @failed_job_args = failed_job_class ? failed_job_class.deserialized(job[:args]) : job[:args]
28
+ @raw_args = job[:args]
29
+ @failed_job_args = failed_job_class ? failed_job_class.deserialized(@raw_args) : @raw_args
29
30
 
30
31
  if force_retry && !(failed_job_class.respond_to?(:disable_retries) && failed_job_class.disable_retries)
31
32
  Metrics.increment("qc.force_retry", source: @q_name)
32
33
  retry_with_remaining(e)
33
34
  # The mailers doesn't have a retries_on?
34
- elsif failed_job_class && failed_job_class.respond_to?(:retries_on?) && failed_job_class.retries_on?(e)
35
+ elsif failed_job_class.respond_to?(:retries_on?) && failed_job_class.retries_on?(e)
35
36
  Metrics.increment("qc.retry", source: @q_name)
36
37
  retry_with_remaining(e)
37
38
  else
@@ -60,11 +61,9 @@ module QueueClassicPlus
60
61
  end
61
62
 
62
63
  def failed_job_class
63
- begin
64
- Object.const_get(@failed_job[:method].split('.')[0])
65
- rescue NameError
66
- nil
67
- end
64
+ Object.const_get(@failed_job[:method].split('.')[0])
65
+ rescue NameError
66
+ nil
68
67
  end
69
68
 
70
69
  def backoff
@@ -80,7 +79,8 @@ module QueueClassicPlus
80
79
  def enqueue_failed(e)
81
80
  sql = "INSERT INTO #{QC.table_name} (q_name, method, args, last_error) VALUES ('failed_jobs', $1, $2, $3)"
82
81
  last_error = e.backtrace ? ([e.message] + e.backtrace ).join("\n") : e.message
83
- QC.default_conn_adapter.execute sql, @failed_job[:method], JSON.dump(@failed_job_args), last_error
82
+
83
+ QC.default_conn_adapter.execute sql, @failed_job[:method], JSON.dump(@raw_args), last_error
84
84
 
85
85
  QueueClassicPlus.exception_handler.call(e, @failed_job)
86
86
  Metrics.increment("qc.errors", source: @q_name)
data/spec/base_spec.rb CHANGED
@@ -160,11 +160,7 @@ describe QueueClassicPlus::Base do
160
160
  end
161
161
  end
162
162
 
163
- context "with Rails defined" do
164
- require 'active_job/arguments'
165
-
166
- before { stub_const('Rails', true) }
167
-
163
+ context "with Rails defined", rails: true do
168
164
  subject do
169
165
  Class.new(QueueClassicPlus::Base) do
170
166
  @queue = :test
data/spec/spec_helper.rb CHANGED
@@ -26,4 +26,11 @@ RSpec.configure do |config|
26
26
  # Reset the default (memoized) queue instance between specs
27
27
  QC.default_queue = nil
28
28
  end
29
+
30
+ config.before(:each, rails: true) do
31
+ require 'active_job'
32
+ require 'active_job/arguments'
33
+
34
+ stub_const('Rails', Struct.new(:logger).new(Logger.new(STDOUT)))
35
+ end
29
36
  end
data/spec/worker_spec.rb CHANGED
@@ -26,6 +26,26 @@ describe QueueClassicPlus::CustomWorker do
26
26
  worker.work
27
27
  expect(failed_queue.count).to eq(1)
28
28
  end
29
+
30
+ context 'when Rails is defined', rails: true do
31
+ let(:job_type) { Jobs::Tests::TestJobNoRetry }
32
+ let(:queue) { job_type.queue }
33
+
34
+ it 'properly serializes arguments for jobs in the failed queue' do
35
+ job_type.enqueue_perform(:raise)
36
+ expect(failed_queue.count).to eq(0)
37
+ worker.work
38
+
39
+ expect(failed_queue.count).to eq(1)
40
+ job = QueueClassicMatchers::QueueClassicRspec.find_by_args(
41
+ 'failed_jobs',
42
+ 'Jobs::Tests::TestJobNoRetry._perform',
43
+ [:raise]).first
44
+
45
+ expect(job).to_not be_nil
46
+ expect(job['last_error']).to_not be_nil
47
+ end
48
+ end
29
49
  end
30
50
 
31
51
  context "retry" do
@@ -67,12 +87,7 @@ describe QueueClassicPlus::CustomWorker do
67
87
  end
68
88
  end
69
89
 
70
- context 'when Rails is defined' do
71
- require 'active_job'
72
- require 'active_job/arguments'
73
-
74
- before { stub_const('Rails', Struct.new(:logger).new(Logger.new(STDOUT))) }
75
-
90
+ context 'when Rails is defined', rails: true do
76
91
  it 'retries' do
77
92
  expect do
78
93
  job_type.enqueue_perform(:foo)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: queue_classic_plus
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0.alpha8
4
+ version: 4.0.0.alpha9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Simon Mathieu
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2021-10-12 00:00:00.000000000 Z
13
+ date: 2021-10-27 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: queue_classic