Skip to content

Commit

Permalink
Support Rails 7.2's new (required) option
Browse files Browse the repository at this point in the history
  • Loading branch information
zachahn committed Aug 10, 2024
1 parent dac2655 commit efa21a9
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 0 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added

* A potential public API
* `Disqualified.configure_client`, specifically to handle Rails 7.2's new config
option `enqueue_after_transaction_commit`. This is set to `false` by default,
similar to other SQL-based background job processors including GoodJob.

### Changed

Expand Down
5 changes: 5 additions & 0 deletions lib/disqualified/active_job.rb
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,11 @@ module QueueAdapters
class DisqualifiedAdapter
extend T::Sig

sig { returns(T::Boolean) }
def enqueue_after_transaction_commit?
Disqualified.client_options.enqueue_after_transaction_commit
end

sig { params(job_data: ActiveJob::Base).void }
def enqueue(job_data)
Disqualified::ActiveJobAdapter.perform_async(job_data.serialize)
Expand Down
11 changes: 11 additions & 0 deletions lib/disqualified/configuration.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,23 @@
module Disqualified
extend T::Sig

@client_options = T.let(ClientConfiguration.new, ClientConfiguration)

class << self
extend T::Sig

sig { returns(Disqualified::ClientConfiguration) }
attr_accessor :client_options

sig { returns(T.nilable(Disqualified::ServerConfiguration)) }
attr_accessor :server_options

sig { params(block: T.proc.params(arg0: Disqualified::ClientConfiguration).void).void }
def configure_client(&block)
block.call(client_options)
end

# While client options are always run, server options only run in the "disqualified" process
sig { params(block: T.proc.params(arg0: Disqualified::ServerConfiguration).void).void }
def configure_server(&block)
if server_options
Expand Down
12 changes: 12 additions & 0 deletions lib/disqualified/configuration_structs.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,17 @@
# typed: strict

class Disqualified::ClientConfiguration
extend T::Sig

sig { void }
def initialize
@enqueue_after_transaction_commit = T.let(false, T::Boolean)
end

sig { returns(T::Boolean) }
attr_accessor :enqueue_after_transaction_commit
end

class Disqualified::ServerConfiguration
extend T::Sig

Expand Down

0 comments on commit efa21a9

Please sign in to comment.