atdo
At time, do code. That is all.
Oh, ok, if you insist, here's a little example:
require 'atdo'
scheduler = AtDo.new
scheduler.at Time.now + 2 do
puts "hello"
end
scheduler.at Time.now + 2 do
puts "world"
end
sleep 3And with rbtree storage instead of array:
require 'atdo'
require 'rbtree'
scheduler = AtDo.new storage: MultiRBTree
scheduler.at Time.now + 2 do
puts "hello"
end
scheduler.at Time.now + 2 do
puts "world"
end
sleep 3Both of these output
hello
world
See the unit tests for more examples.
The rbtree option is better for larger lists of tasks, especially with random inserts.