This repository is private.
All pages are served over SSL and all pushing and pulling is done over SSH.
No one may fork, clone, or view it unless they are added as a member.
Every repository with this icon (
) is private.
Every repository with this icon (
This repository is public.
Anyone may fork, clone, or view it.
Every repository with this icon (
) is public.
Every repository with this icon (
| name | age | message | |
|---|---|---|---|
| |
README | Fri Feb 27 23:16:29 -0800 2009 | |
| |
em-timers.gemspec | Fri Feb 27 23:16:29 -0800 2009 | |
| |
lib/ | Fri Feb 27 23:16:29 -0800 2009 |
README
em-timers
helper methods for timers in EventMachine
examples:
# Once per hour, starting now. Note the :now symbol must be passed for your block to be called immediately.
EM.do_hourly(:starting => :now) { puts "drink a beer" }
# Once per day, starting in 1 day.
EM.do_daily { puts "take a shower" }
# Once per week, starting in 10 hours
EM.do_weekly(:starting => 10.hours.from_now) { puts "take out the garbage" }
# Once per month, starting at this time tomorrow.
EM.do_monthly(:starting => 1.day.from_now) { puts "pay the bills" }
# Or you can simply pass a number of seconds til starting
EM.do_monthly(:starting => 2592000) { puts "pay the bills, in seconds!" }
# Leveraging the Chronic time parsing library. em-timers knows if you have required
# Chronic and uses it to parse strings if you have. Otherwise, it uses Time.parse.
#
# Every 2 hours, starting next Tuesday at 9AM.
require 'chronic'
EM.do(:every => 2.hours, :starting => 'next tuesday at 9am') { puts "go pee" }
# You can add up units of time as well
EM.do(:every => 1.minutes + 3.seconds) { puts "hi!" }
TODO:
Maintain a list of task signatures and their associated timer signatures so tasks can be canceled.
jakecdouglas@gmail.com
yakischloba on Freenode #eventmachine






