Module: Scheduler
- Defined in:
- lib/scheduler.rb,
lib/scheduler/engine.rb,
lib/scheduler/version.rb,
lib/scheduler/main_process.rb,
lib/scheduler/configuration.rb,
app/models/scheduler/schedulable.rb,
lib/generators/scheduler/config_generator.rb
Defined Under Namespace
Modules: Generators, Schedulable Classes: Configuration, Engine, MainProcess
Constant Summary collapse
- VERSION =
'0.1.2'
Class Attribute Summary collapse
-
.configuration ⇒ Scheduler::Configuration
Initializes configuration.
Class Method Summary collapse
-
.configure {|@configuration| ... } ⇒ nil
Method to configure various Scheduler options.
-
.pid ⇒ Integer
Gets scheduler main process pid.
-
.pid_file ⇒ String
Gets scheduler pid file.
-
.restart ⇒ nil
Restarts the scheduler.
-
.start ⇒ nil
Starts a Scheduler::MainProcess in a separate process.
-
.stop ⇒ nil
Reschedules all running jobs and stops the scheduler main process.
Class Attribute Details
.configuration ⇒ Scheduler::Configuration
Initializes configuration.
10 11 12 |
# File 'lib/scheduler.rb', line 10 def configuration @configuration end |
Class Method Details
.configure {|@configuration| ... } ⇒ nil
Method to configure various Scheduler options.
24 25 26 27 |
# File 'lib/scheduler.rb', line 24 def configure @configuration ||= Scheduler::Configuration.new yield @configuration end |
.pid ⇒ Integer
Gets scheduler main process pid.
41 42 43 |
# File 'lib/scheduler.rb', line 41 def pid File.read(self.pid_file).to_i rescue nil end |
.pid_file ⇒ String
Gets scheduler pid file.
33 34 35 |
# File 'lib/scheduler.rb', line 33 def pid_file '/tmp/rails-scheduler.pid' end |
.restart ⇒ nil
Restarts the scheduler.
81 82 83 84 |
# File 'lib/scheduler.rb', line 81 def restart self.stop self.start end |
.start ⇒ nil
Starts a Scheduler::MainProcess in a separate process.
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/scheduler.rb', line 49 def start scheduler_pid = Process.fork do begin Process.daemon(true) File.open(self.pid_file, 'w+') do |pidfile| pidfile.puts Process.pid end scheduler = Scheduler::MainProcess.new rescue StandardError => e Rails.logger.error "#{e.class}: #{e.} (#{e.backtrace.first})".red end end Process.detach(scheduler_pid) scheduler_pid end |