class ActiveJob::QueueAdapters::GoogleCloudPubsubAdapter

Public Instance Methods

enqueue(job, attributes = {}) click to toggle source
# File lib/gps/job/adapter.rb, line 6
def enqueue(job, attributes = {})
  Gps::Job.configuration.logger&.info "Google Pub/Sub Enqueued job #{job.inspect}"
  Gps::Job.topic.publish(job_data(job, attributes).to_json)
end
enqueue_at(job, timestamp) click to toggle source
# File lib/gps/job/adapter.rb, line 11
def enqueue_at(job, timestamp)
  enqueue(job, timestamp: timestamp)
end

Private Instance Methods

job_data(job, attributes) click to toggle source
# File lib/gps/job/adapter.rb, line 17
def job_data(job, attributes)
  info = job.serialize
  info['at'] = attributes[:timestamp] if attributes[:timestamp].to_i > Time.now.to_i
  info
end