Skip to content

Commit 11f3f1f

Browse files
committed
Update BarbequeAdapter for Rails 7.2 compatibility
In Rails 7.2, a new class called ActiveJob::QueueAdapter::AbstractAdapter was added. It looks like custom adapters should basically inherit from this class. Considering the support period for Rails, it would be better to stop supporting versions less than Rails 7.2 and make codes simpler. - Update gemspec to require Rails 7.2 (ActiveJob) and above - Refactor BarbequeAdapter to inherit from ActiveJob::AbstractAdapter
1 parent bf54842 commit 11f3f1f

File tree

3 files changed

+19
-29
lines changed

3 files changed

+19
-29
lines changed

barbeque_client.gemspec

+3-1
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,11 @@ Gem::Specification.new do |spec|
2020
spec.require_paths = ['lib']
2121

2222
spec.add_dependency 'garage_client'
23+
spec.add_dependency 'activejob', '>= 7.2'
24+
spec.add_dependency 'railties', '>= 7.2'
2325
spec.add_development_dependency 'bundler'
2426
spec.add_development_dependency 'pry'
25-
spec.add_development_dependency 'rails', '~> 6.1.4'
27+
spec.add_development_dependency 'rails', '>= 7.2'
2628
spec.add_development_dependency 'rake'
2729
spec.add_development_dependency 'rspec-rails'
2830
end

lib/active_job/queue_adapters/barbeque_adapter.rb

+15-27
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,24 @@
11
module ActiveJob
22
module QueueAdapters
3-
class BarbequeAdapter
4-
# Interface for ActiveJob 5.0
3+
class BarbequeAdapter < ActiveJob::AbstractAdapter
54
def enqueue(job)
6-
BarbequeAdapter.enqueue(job)
5+
execution = BarbequeClient.enqueue(
6+
job: job.class.to_s,
7+
message: ActiveJob::Arguments.serialize(job.arguments),
8+
queue: job.queue_name,
9+
)
10+
job.job_id = execution.message_id
711
end
812

913
def enqueue_at(job, timestamp)
10-
BarbequeAdapter.enqueue_at(job, timestamp)
11-
end
12-
13-
class << self
14-
# Interface for ActiveJob 4.2
15-
def enqueue(job)
16-
execution = BarbequeClient.enqueue(
17-
job: job.class.to_s,
18-
message: ActiveJob::Arguments.serialize(job.arguments),
19-
queue: job.queue_name,
20-
)
21-
job.job_id = execution.message_id
22-
end
23-
24-
def enqueue_at(job, timestamp)
25-
delay_seconds = (timestamp - Time.now.to_f).round
26-
execution = BarbequeClient.enqueue(
27-
job: job.class.to_s,
28-
message: ActiveJob::Arguments.serialize(job.arguments),
29-
queue: job.queue_name,
30-
delay_seconds: delay_seconds,
31-
)
32-
job.job_id = execution.message_id
33-
end
14+
delay_seconds = (timestamp - Time.now.to_f).round
15+
execution = BarbequeClient.enqueue(
16+
job: job.class.to_s,
17+
message: ActiveJob::Arguments.serialize(job.arguments),
18+
queue: job.queue_name,
19+
delay_seconds: delay_seconds,
20+
)
21+
job.job_id = execution.message_id
3422
end
3523
end
3624
end

lib/barbeque_client/version.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
module BarbequeClient
2-
VERSION = '0.10.2'
2+
VERSION = '0.11.0'
33
end

0 commit comments

Comments
 (0)