Module: Moment
- Defined in:
- lib/moment.rb
Overview
Moment. a scheduler.
- Author
-
visnup <[email protected]>
- Started
-
8 March 2006
- Copyright
-
Copyright © 2006 Swivel, LLC
- License
-
Ruby License
i just ate some doritos and need to drink more water.
Introduction
Moment is a scheduling service that handles running given jobs at specified intervals.
Features
Built-in triggers include a cron implementation (CronTrigger) and simple reptition (SimpleTrigger). Users-written triggers are of course supported by extending Trigger. A Server is also provided that handles multithreading. There is also a seperate executable moment_server
that can be run and scheduled to via DRb. Built-in job types include a shell execution job (ShellJob), or you can extend Job.
Example
require 'rubygems'
require 'moment'
require 'drb'
class Printer
include DRbUndumped
attr_accessor :name, :counter
def initialize(name = nil)
self.name = name
self.counter = 0
end
def execute
puts self.inspect, Time.now
@counter += 1
end
end
DRb.start_service
scheduler = DRbObject.new(nil, 'druby://localhost:9901')
scheduler.schedule(Moment::ShellJob.new('ls'),
Moment::SimpleTrigger.new(Time.now, Time.now + 10, 2)) # from now till 10 seconds from now, every 2 seconds
scheduler.schedule(Moment::ShellJob.new('date'),
Moment::CronTrigger.new('0 0/5 * * 3,5') # every 5 minutes during March and May
Server
The above example assumes the included server moment_server
is running on port 9901. See the documentation on running moment_server
.
Defined Under Namespace
Classes: CronTrigger, Job, Scheduler, Server, ShellJob, SimpleTrigger, Trigger