Class: Lazylead::Schedule
- Inherits:
-
Object
- Object
- Lazylead::Schedule
- Defined in:
- lib/lazylead/schedule.rb
Overview
The tasks schedule
- Author
-
Yurii Dubinka ([email protected])
- Copyright
-
Copyright © 2019-2020 Yurii Dubinka
- License
-
MIT
Instance Method Summary collapse
-
#initialize(log: Log.new, cling: true, trigger: Rufus::Scheduler.new) ⇒ Schedule
constructor
A new instance of Schedule.
- #join ⇒ Object
- #ps ⇒ Object
- #register(task) ⇒ Object
- #stop ⇒ Object
Constructor Details
Instance Method Details
#join ⇒ Object
62 63 64 |
# File 'lib/lazylead/schedule.rb', line 62 def join @trigger.join if @cling end |
#ps ⇒ Object
TODO:
#/DEV inspect the current execution status. This method should support several format for output, by default is ‘json`.
58 59 60 |
# File 'lib/lazylead/schedule.rb', line 58 def ps @log.debug "#{self}#ps" end |
#register(task) ⇒ Object
TODO:
#/DEV error code is required for each ‘raise’ statement within the application. Align the naming of existing one, the error code should be like ll-xxx.
46 47 48 49 50 51 52 53 54 |
# File 'lib/lazylead/schedule.rb', line 46 def register(task) raise "ll-002: task can't be a null" if task.nil? @trigger.method(task.type).call(task.unit) do ActiveRecord::Base.connection_pool.with_connection do ORM::VerboseTask.new(task, @log).exec end end @log.debug "Task scheduled: #{task}" end |
#stop ⇒ Object
TODO:
#/DEV stop the execution of current jobs (shutdown?). The test is required.
68 69 70 |
# File 'lib/lazylead/schedule.rb', line 68 def stop @trigger.shutdown(:kill) end |