backburner 1.6.0 → 1.7.0

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: 93c9b77199209b894ae963d9474a3234212225021537f99b9fee11433e73f6c4
4
- data.tar.gz: 49e775e7a32ccc85a557f27ba89a146617553b45e0a252ddfe12f84d1e501706
3
+ metadata.gz: 83834669d5d4ccf208c32935bccba313a04b097611c10f5ebe071f81aae32b6d
4
+ data.tar.gz: 97d85b5bf0a1e9c623f5c9fd35d2d130d27599b53b9f554a56d36dd0eeab8ea1
5
5
  SHA512:
6
- metadata.gz: f6e5cdea7a5e3092b8dfc61199ccabf1eb898b3eae4c5645171a7fecc415d7c1c467d1fd173d78732dee6c60bfd2f5928cb728a52e13269bbd951d6d304a2ceb
7
- data.tar.gz: e0da0a58b32ea88704e33a4e19a03b3f3b1c8cb63428091743953112841e6b2fc1bf27d5de18d51a8777cad9ee45e069a02a0f9cc132fdf8a0e036bd0379e162
6
+ metadata.gz: b6eafd91259c9a156077451cbc5ff243317a70b92af17f45887566bfd50a358eff365aa407554760e1781482623fe96882fbc6473cc0541ed058eb0f5aa643e2
7
+ data.tar.gz: 9d90985cdbc5040961f183cfb560223b2bce8c547a10eeedf460c0f5c3db56726849888903668e8d201b43c5d7b2498f9cf1f1ffbcedd6501316c4222ad4e78f
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## Version 1.7.0 (Jan 2 2026)
4
+
5
+ * Changes to ActiveJob Rails adapter to remove default adapter and associated tests
6
+
7
+ ## Version 1.6.1 (Jan 16 2023)
8
+
9
+ * Change `File.exists?`` to `File.exist?` as latest ruby versions have removed support (@ShrutiSaagar).
10
+
3
11
  ## Version 1.6.0 (December 30 2021)
4
12
 
5
13
  * TBD (please help backfill)
data/README.md CHANGED
@@ -18,7 +18,7 @@ custom logging, and extensible plugin hooks.
18
18
 
19
19
  Backburner is well tested and has a familiar, no-nonsense approach to job processing, but that is of secondary importance.
20
20
  Let's face it, there are a lot of options for background job processing. [DelayedJob](https://github.com/collectiveidea/delayed_job),
21
- and [Resque](https://github.com/defunkt/resque) are the first that come to mind immediately. So, how do we make sense
21
+ and [Resque](https://github.com/resque/resque) are the first that come to mind immediately. So, how do we make sense
22
22
  of which one to use? And why use Backburner over other alternatives?
23
23
 
24
24
  The key to understanding the differences lies in understanding the different projects and protocols that power these popular queue
data/backburner.gemspec CHANGED
@@ -21,6 +21,8 @@ Gem::Specification.new do |s|
21
21
  s.add_runtime_dependency 'concurrent-ruby', '~> 1.0', '>= 1.0.1'
22
22
 
23
23
  s.add_development_dependency 'rake'
24
- s.add_development_dependency 'minitest', '3.2.0'
24
+ s.add_development_dependency 'minitest', '5.1.0'
25
25
  s.add_development_dependency 'mocha'
26
+ s.add_development_dependency 'activejob', '>= 6.0'
27
+ s.add_development_dependency 'activesupport', '>= 6.0'
26
28
  end
@@ -0,0 +1,34 @@
1
+ module ActiveJob
2
+ module QueueAdapters
3
+ # Explicitly remove the implementation existing in older rails'.
4
+ remove_const(:BackburnerAdapter) if const_defined?(:BackburnerAdapter)
5
+
6
+ # = Backburner adapter for Active Job
7
+ #
8
+ # To use Backburner set the queue_adapter config to +:backburner+.
9
+ #
10
+ # Rails.application.config.active_job.queue_adapter = :backburner
11
+ class BackburnerAdapter < ::ActiveJob::QueueAdapters::AbstractAdapter
12
+ def enqueue(job)
13
+ response = Backburner::Worker.enqueue(JobWrapper, [job.serialize], queue: job.queue_name, pri: job.priority)
14
+ job.provider_job_id = response[:id] if response.is_a?(Hash)
15
+ response
16
+ end
17
+
18
+ def enqueue_at(job, timestamp)
19
+ delay = timestamp - Time.current.to_f
20
+ response = Backburner::Worker.enqueue(JobWrapper, [job.serialize], queue: job.queue_name, pri: job.priority, delay: delay)
21
+ job.provider_job_id = response[:id] if response.is_a?(Hash)
22
+ response
23
+ end
24
+
25
+ class JobWrapper
26
+ class << self
27
+ def perform(job_data)
28
+ Base.execute job_data
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -28,7 +28,7 @@ module Backburner
28
28
 
29
29
  def self.load_environment(file = nil, environment = nil)
30
30
  file ||= "."
31
- if File.directory?(file) && File.exists?(File.expand_path("#{file}/config/environment.rb"))
31
+ if File.directory?(file) && File.exist?(File.expand_path("#{file}/config/environment.rb"))
32
32
  ENV["RAILS_ENV"] = environment if environment && ENV["RAILS_ENV"].nil?
33
33
  require "rails"
34
34
  require File.expand_path("#{file}/config/environment.rb")
@@ -40,7 +40,7 @@ module Backburner
40
40
  $rails_rake_task = false
41
41
  ::Rails::Initializer.run :load_application_classes
42
42
  end
43
- elsif File.directory?(file) && File.exists?(File.expand_path("#{file}/config/boot.rb"))
43
+ elsif File.directory?(file) && File.exist?(File.expand_path("#{file}/config/boot.rb"))
44
44
  ENV["RACK_ENV"] = environment if environment && ENV["RACK_ENV"].nil?
45
45
  ENV["PADRINO_ROOT"] = file
46
46
  require File.expand_path("#{file}/config/boot.rb")
@@ -1,3 +1,3 @@
1
1
  module Backburner
2
- VERSION = "1.6.0"
2
+ VERSION = "1.7.0"
3
3
  end
data/lib/backburner.rb CHANGED
@@ -15,6 +15,7 @@ require 'backburner/workers/forking'
15
15
  require 'backburner/workers/threads_on_fork'
16
16
  require 'backburner/workers/threading'
17
17
  require 'backburner/queue'
18
+ require 'active_job/queue_adapters/backburner_adapter' if defined?(ActiveJob)
18
19
 
19
20
  module Backburner
20
21
  class << self
@@ -0,0 +1,11 @@
1
+ require 'active_job'
2
+ require 'active_job/queue_adapters/backburner_adapter'
3
+
4
+ ActiveJob::Base.queue_adapter = :backburner
5
+ ActiveJob::Base.logger = nil
6
+
7
+ class TestJob < ActiveJob::Base
8
+ def perform(arg)
9
+ true
10
+ end
11
+ end
data/test/test_helper.rb CHANGED
@@ -1,11 +1,8 @@
1
1
  require 'rubygems'
2
2
  require 'tempfile'
3
3
  require 'minitest/autorun'
4
- begin
5
- require 'mocha/setup'
6
- rescue LoadError
7
- require 'mocha'
8
- end
4
+ require 'mocha/minitest'
5
+
9
6
  $LOAD_PATH.unshift File.expand_path("lib")
10
7
  require 'backburner'
11
8
  require File.expand_path('../helpers/templogger', __FILE__)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: backburner
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.0
4
+ version: 1.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Esquenazi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-12-30 00:00:00.000000000 Z
11
+ date: 2026-01-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: beaneater
@@ -78,14 +78,14 @@ dependencies:
78
78
  requirements:
79
79
  - - '='
80
80
  - !ruby/object:Gem::Version
81
- version: 3.2.0
81
+ version: 5.1.0
82
82
  type: :development
83
83
  prerelease: false
84
84
  version_requirements: !ruby/object:Gem::Requirement
85
85
  requirements:
86
86
  - - '='
87
87
  - !ruby/object:Gem::Version
88
- version: 3.2.0
88
+ version: 5.1.0
89
89
  - !ruby/object:Gem::Dependency
90
90
  name: mocha
91
91
  requirement: !ruby/object:Gem::Requirement
@@ -100,6 +100,34 @@ dependencies:
100
100
  - - ">="
101
101
  - !ruby/object:Gem::Version
102
102
  version: '0'
103
+ - !ruby/object:Gem::Dependency
104
+ name: activejob
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: '6.0'
110
+ type: :development
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: '6.0'
117
+ - !ruby/object:Gem::Dependency
118
+ name: activesupport
119
+ requirement: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: '6.0'
124
+ type: :development
125
+ prerelease: false
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ version: '6.0'
103
131
  description: Beanstalk background job processing made easy
104
132
  email:
105
133
  - nesquena@gmail.com
@@ -128,6 +156,7 @@ files:
128
156
  - examples/retried.rb
129
157
  - examples/simple.rb
130
158
  - examples/stress.rb
159
+ - lib/active_job/queue_adapters/backburner_adapter.rb
131
160
  - lib/backburner.rb
132
161
  - lib/backburner/async_proxy.rb
133
162
  - lib/backburner/cli.rb
@@ -149,6 +178,7 @@ files:
149
178
  - test/async_proxy_test.rb
150
179
  - test/back_burner_test.rb
151
180
  - test/connection_test.rb
181
+ - test/fixtures/active_jobs.rb
152
182
  - test/fixtures/hooked.rb
153
183
  - test/fixtures/test_fork_jobs.rb
154
184
  - test/fixtures/test_forking_jobs.rb
@@ -194,6 +224,7 @@ test_files:
194
224
  - test/async_proxy_test.rb
195
225
  - test/back_burner_test.rb
196
226
  - test/connection_test.rb
227
+ - test/fixtures/active_jobs.rb
197
228
  - test/fixtures/hooked.rb
198
229
  - test/fixtures/test_fork_jobs.rb
199
230
  - test/fixtures/test_forking_jobs.rb