Module: Cloudtasker::Worker::ClassMethods

Defined in:
lib/cloudtasker/worker.rb,
lib/cloudtasker/testing.rb

Overview

Module class methods

Instance Method Summary collapse

Instance Method Details

#cloudtasker_options(opts = {}) ⇒ Hash

Set the worker runtime options.

Parameters:

  • opts (Hash) (defaults to: {})

    The worker options.

Returns:

  • (Hash)

    The options set.



64
65
66
67
# File 'lib/cloudtasker/worker.rb', line 64

def cloudtasker_options(opts = {})
  opt_list = opts&.map { |k, v| [k.to_sym, v] } || [] # symbolize
  @cloudtasker_options_hash = Hash[opt_list]
end

#cloudtasker_options_hashHash

Return the worker runtime options.

Returns:

  • (Hash)

    The worker runtime options.



74
75
76
# File 'lib/cloudtasker/worker.rb', line 74

def cloudtasker_options_hash
  @cloudtasker_options_hash || {}
end

#drainArray<any>

Run all jobs related to this worker class.

Returns:

  • (Array<any>)

    The return values of the workers perform method.



128
129
130
# File 'lib/cloudtasker/testing.rb', line 128

def drain
  Backend::MemoryTask.drain(to_s)
end

#jobsArray<Cloudtasker::Backend::MemoryTask>

Return all jobs related to this worker class.

Returns:



119
120
121
# File 'lib/cloudtasker/testing.rb', line 119

def jobs
  Backend::MemoryTask.all(to_s)
end

#max_retriesInteger

Return the numbeer of times this worker will be retried.

Returns:

  • (Integer)

    The number of retries.



132
133
134
# File 'lib/cloudtasker/worker.rb', line 132

def max_retries
  cloudtasker_options_hash[:max_retries] || Cloudtasker.config.max_retries
end

#perform_async(*args) ⇒ Cloudtasker::CloudTask

Enqueue worker in the backgroundf.

Parameters:

  • *args (Array<any>)

    List of worker arguments

Returns:



85
86
87
# File 'lib/cloudtasker/worker.rb', line 85

def perform_async(*args)
  schedule(args: args)
end

#perform_at(time_at, *args) ⇒ Cloudtasker::CloudTask

Enqueue worker and delay processing.

Parameters:

  • time_at (Time, Integer)

    The time at which the job should run.

  • *args (Array<any>)

    List of worker arguments

Returns:



109
110
111
# File 'lib/cloudtasker/worker.rb', line 109

def perform_at(time_at, *args)
  schedule(args: args, time_at: time_at)
end

#perform_in(interval, *args) ⇒ Cloudtasker::CloudTask

Enqueue worker and delay processing.

Parameters:

  • interval (Integer, nil)

    The delay in seconds.

  • *args (Array<any>)

    List of worker arguments.

Returns:



97
98
99
# File 'lib/cloudtasker/worker.rb', line 97

def perform_in(interval, *args)
  schedule(args: args, time_in: interval)
end

#schedule(args: nil, time_in: nil, time_at: nil, queue: nil) ⇒ Cloudtasker::CloudTask

Enqueue a worker with explicity options.

Parameters:

  • args (Array<any>) (defaults to: nil)

    The job arguments.

  • time_in (Time, Integer) (defaults to: nil)

    The delay in seconds.

  • time_at (Time, Integer) (defaults to: nil)

    The time at which the job should run.

  • queue (String, Symbol) (defaults to: nil)

    The queue on which the worker should run.

Returns:



123
124
125
# File 'lib/cloudtasker/worker.rb', line 123

def schedule(args: nil, time_in: nil, time_at: nil, queue: nil)
  new(job_args: args, job_queue: queue).schedule(**{ interval: time_in, time_at: time_at }.compact)
end