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 3
And 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 3
Both 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.