Class: Pgbus::Recurring::Task
- Inherits:
-
Object
- Object
- Pgbus::Recurring::Task
- Defined in:
- lib/pgbus/recurring/task.rb
Instance Attribute Summary collapse
-
#arguments ⇒ Object
readonly
Returns the value of attribute arguments.
-
#class_name ⇒ Object
readonly
Returns the value of attribute class_name.
-
#command ⇒ Object
readonly
Returns the value of attribute command.
-
#description ⇒ Object
readonly
Returns the value of attribute description.
-
#key ⇒ Object
readonly
Returns the value of attribute key.
-
#priority ⇒ Object
readonly
Returns the value of attribute priority.
-
#queue_name ⇒ Object
readonly
Returns the value of attribute queue_name.
-
#schedule ⇒ Object
readonly
Returns the value of attribute schedule.
Class Method Summary collapse
Instance Method Summary collapse
- #errors ⇒ Object
- #human_schedule ⇒ Object
-
#initialize(key:, class_name: nil, command: nil, schedule: nil, queue_name: nil, arguments: [], priority: 0, description: nil) ⇒ Task
constructor
A new instance of Task.
- #job_class ⇒ Object
- #next_time(from = Time.now) ⇒ Object
- #parsed_schedule ⇒ Object
- #previous_time(from = Time.now) ⇒ Object
- #to_h ⇒ Object
- #valid? ⇒ Boolean
Constructor Details
#initialize(key:, class_name: nil, command: nil, schedule: nil, queue_name: nil, arguments: [], priority: 0, description: nil) ⇒ Task
Returns a new instance of Task.
25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/pgbus/recurring/task.rb', line 25 def initialize(key:, class_name: nil, command: nil, schedule: nil, queue_name: nil, arguments: [], priority: 0, description: nil) @key = key @class_name = class_name @command = command @schedule = schedule @queue_name = queue_name @arguments = arguments || [] @priority = priority || 0 @description = description @errors = [] end |
Instance Attribute Details
#arguments ⇒ Object (readonly)
Returns the value of attribute arguments.
8 9 10 |
# File 'lib/pgbus/recurring/task.rb', line 8 def arguments @arguments end |
#class_name ⇒ Object (readonly)
Returns the value of attribute class_name.
8 9 10 |
# File 'lib/pgbus/recurring/task.rb', line 8 def class_name @class_name end |
#command ⇒ Object (readonly)
Returns the value of attribute command.
8 9 10 |
# File 'lib/pgbus/recurring/task.rb', line 8 def command @command end |
#description ⇒ Object (readonly)
Returns the value of attribute description.
8 9 10 |
# File 'lib/pgbus/recurring/task.rb', line 8 def description @description end |
#key ⇒ Object (readonly)
Returns the value of attribute key.
8 9 10 |
# File 'lib/pgbus/recurring/task.rb', line 8 def key @key end |
#priority ⇒ Object (readonly)
Returns the value of attribute priority.
8 9 10 |
# File 'lib/pgbus/recurring/task.rb', line 8 def priority @priority end |
#queue_name ⇒ Object (readonly)
Returns the value of attribute queue_name.
8 9 10 |
# File 'lib/pgbus/recurring/task.rb', line 8 def queue_name @queue_name end |
#schedule ⇒ Object (readonly)
Returns the value of attribute schedule.
8 9 10 |
# File 'lib/pgbus/recurring/task.rb', line 8 def schedule @schedule end |
Class Method Details
.from_configuration(key, **options) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/pgbus/recurring/task.rb', line 11 def self.from_configuration(key, **) = .transform_keys(&:to_sym) new( key: key, class_name: [:class], command: [:command], schedule: [:schedule], queue_name: [:queue], arguments: Array([:args]), priority: .fetch(:priority, 0).to_i, description: [:description] ) end |
Instance Method Details
#errors ⇒ Object
44 45 46 47 |
# File 'lib/pgbus/recurring/task.rb', line 44 def errors valid? unless defined?(@validated) @errors end |
#human_schedule ⇒ Object
61 62 63 64 65 |
# File 'lib/pgbus/recurring/task.rb', line 61 def human_schedule return nil unless parsed_schedule parsed_schedule.to_cron_s end |
#job_class ⇒ Object
67 68 69 |
# File 'lib/pgbus/recurring/task.rb', line 67 def job_class class_name&.safe_constantize end |
#next_time(from = Time.now) ⇒ Object
53 54 55 |
# File 'lib/pgbus/recurring/task.rb', line 53 def next_time(from = Time.now) parsed_schedule&.next_time(from)&.to_t end |
#parsed_schedule ⇒ Object
49 50 51 |
# File 'lib/pgbus/recurring/task.rb', line 49 def parsed_schedule @parsed_schedule ||= parse_schedule end |
#previous_time(from = Time.now) ⇒ Object
57 58 59 |
# File 'lib/pgbus/recurring/task.rb', line 57 def previous_time(from = Time.now) parsed_schedule&.previous_time(from)&.to_t end |
#to_h ⇒ Object
71 72 73 74 75 76 77 78 79 80 81 82 |
# File 'lib/pgbus/recurring/task.rb', line 71 def to_h { key: key, class_name: class_name, command: command, schedule: schedule, queue_name: queue_name, arguments: arguments, priority: priority, description: description } end |
#valid? ⇒ Boolean
38 39 40 41 42 |
# File 'lib/pgbus/recurring/task.rb', line 38 def valid? @errors = [] validate! @errors.empty? end |