queue_classic_plus 4.0.0.alpha8 → 4.0.0.alpha9

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: 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