Skip to content

Commit 1beffa4

Browse files
authored
Update BarbequeAdapter for Rails 7.2 compatibility (#18)
* 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 * Rails 7.2 requires Ruby 3.1 or higher
1 parent bf54842 commit 1beffa4

File tree

4 files changed

+19
-32
lines changed

4 files changed

+19
-32
lines changed

.github/workflows/ci.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,6 @@ jobs:
1111
fail-fast: false
1212
matrix:
1313
ruby:
14-
- '2.6'
15-
- '2.7'
16-
- '3.0'
1714
- '3.1'
1815
- '3.2'
1916
- '3.3'

barbeque_client.gemspec

Lines changed: 3 additions & 1 deletion
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

Lines changed: 15 additions & 27 deletions
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::QueueAdapters::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

Lines changed: 1 addition & 1 deletion
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)