Class: ActiveJob::GoogleCloudTasks::HTTP::Adapter

Inherits:
Object
  • Object
show all
Includes:
Inlining
Defined in:
lib/active_job/google_cloud_tasks/http/adapter.rb

Instance Method Summary collapse

Constructor Details

#initialize(project:, location:, url:, task_options: {}, client: nil, enqueue_after_transaction_commit: false) ⇒ Adapter

Returns a new instance of Adapter.



9
10
11
12
13
14
15
16
# File 'lib/active_job/google_cloud_tasks/http/adapter.rb', line 9

def initialize(project:, location:, url:, task_options: {}, client: nil, enqueue_after_transaction_commit: false)
  @project = project
  @location = location
  @url = url
  @task_options = task_options
  @client = client
  @enqueue_after_transaction_commit = enqueue_after_transaction_commit
end

Instance Method Details

#enqueue(job, attributes = {}) ⇒ Object



23
24
25
26
27
28
# File 'lib/active_job/google_cloud_tasks/http/adapter.rb', line 23

def enqueue(job, attributes = {})
  path = client.queue_path(project: @project, location: @location, queue: job.queue_name)
  task = build_task(job, attributes)

  client.create_task parent: path, task: task
end

#enqueue_after_transaction_commit?Boolean

Method expected in Rails 7.2 and later

Returns:

  • (Boolean)


19
20
21
# File 'lib/active_job/google_cloud_tasks/http/adapter.rb', line 19

def enqueue_after_transaction_commit?
  @enqueue_after_transaction_commit
end

#enqueue_at(job, scheduled_at) ⇒ Object



30
31
32
# File 'lib/active_job/google_cloud_tasks/http/adapter.rb', line 30

def enqueue_at(job, scheduled_at)
  enqueue job, scheduled_at: scheduled_at
end