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