From 46ca1a566a86e186159c91a12ff460cee8324636 Mon Sep 17 00:00:00 2001 From: Takahiro Okumura Date: Fri, 10 Jan 2025 15:15:32 +0900 Subject: [PATCH 1/2] 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 --- barbeque_client.gemspec | 4 +- .../queue_adapters/barbeque_adapter.rb | 42 +++++++------------ lib/barbeque_client/version.rb | 2 +- 3 files changed, 19 insertions(+), 29 deletions(-) diff --git a/barbeque_client.gemspec b/barbeque_client.gemspec index 3a3021b..7fad698 100644 --- a/barbeque_client.gemspec +++ b/barbeque_client.gemspec @@ -20,9 +20,11 @@ Gem::Specification.new do |spec| spec.require_paths = ['lib'] spec.add_dependency 'garage_client' + spec.add_dependency 'activejob', '>= 7.2' + spec.add_dependency 'railties', '>= 7.2' spec.add_development_dependency 'bundler' spec.add_development_dependency 'pry' - spec.add_development_dependency 'rails', '~> 6.1.4' + spec.add_development_dependency 'rails', '>= 7.2' spec.add_development_dependency 'rake' spec.add_development_dependency 'rspec-rails' end diff --git a/lib/active_job/queue_adapters/barbeque_adapter.rb b/lib/active_job/queue_adapters/barbeque_adapter.rb index bb4f2a7..724de00 100644 --- a/lib/active_job/queue_adapters/barbeque_adapter.rb +++ b/lib/active_job/queue_adapters/barbeque_adapter.rb @@ -1,36 +1,24 @@ module ActiveJob module QueueAdapters - class BarbequeAdapter - # Interface for ActiveJob 5.0 + class BarbequeAdapter < ActiveJob::QueueAdapters::AbstractAdapter def enqueue(job) - BarbequeAdapter.enqueue(job) + execution = BarbequeClient.enqueue( + job: job.class.to_s, + message: ActiveJob::Arguments.serialize(job.arguments), + queue: job.queue_name, + ) + job.job_id = execution.message_id end def enqueue_at(job, timestamp) - BarbequeAdapter.enqueue_at(job, timestamp) - end - - class << self - # Interface for ActiveJob 4.2 - def enqueue(job) - execution = BarbequeClient.enqueue( - job: job.class.to_s, - message: ActiveJob::Arguments.serialize(job.arguments), - queue: job.queue_name, - ) - job.job_id = execution.message_id - end - - def enqueue_at(job, timestamp) - delay_seconds = (timestamp - Time.now.to_f).round - execution = BarbequeClient.enqueue( - job: job.class.to_s, - message: ActiveJob::Arguments.serialize(job.arguments), - queue: job.queue_name, - delay_seconds: delay_seconds, - ) - job.job_id = execution.message_id - end + delay_seconds = (timestamp - Time.now.to_f).round + execution = BarbequeClient.enqueue( + job: job.class.to_s, + message: ActiveJob::Arguments.serialize(job.arguments), + queue: job.queue_name, + delay_seconds: delay_seconds, + ) + job.job_id = execution.message_id end end end diff --git a/lib/barbeque_client/version.rb b/lib/barbeque_client/version.rb index 1d4f95d..8271b3f 100644 --- a/lib/barbeque_client/version.rb +++ b/lib/barbeque_client/version.rb @@ -1,3 +1,3 @@ module BarbequeClient - VERSION = '0.10.2' + VERSION = '0.11.0' end From 1022004dc76bf5257a28d9780717be4fdf05537c Mon Sep 17 00:00:00 2001 From: Takahiro Okumura Date: Mon, 13 Jan 2025 01:28:19 +0900 Subject: [PATCH 2/2] Rails 7.2 requires Ruby 3.1 or higher --- .github/workflows/ci.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d216d2a..b889eff 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -11,9 +11,6 @@ jobs: fail-fast: false matrix: ruby: - - '2.6' - - '2.7' - - '3.0' - '3.1' - '3.2' - '3.3'