Ost Scheduler
Ost-Scheduler is an extension to Ost that adds support for queueing items in the future.
Description
Ost provides simple, lightweight background job functionality.
Ost-Scheduler makes it easy to enqueue object ids and process them with workers.
Say you want to process video uploads. In your application you will have something like this:
Ost[:videos_to_process].push_at( Time.now + 60 , @video.id )Then, you will have a worker that will look like this:
require "ost-scheduler"
Ost[:videos_to_process].each_delayed do |id|
# Do something with it!
endUsage
Ost uses a lightweight Redis client called [Redic][redic]. To connect to
a Redis database, you will need to set an instance of Redic, with a URL
of the form redis://:<passwd>@<host>:<port>/<db>.
You can customize the connection by calling Ost.redis=:
require "ost-scheduler"
Ost.redis = Redic.new("redis://127.0.0.1:6379")Then you only need to refer to a queue for it to pop into existence:
require "ost-scheduler"
Ost.redis = Redic.new("redis://127.0.0.1:6379")
Ost[:event].push_at(@datetime, @feed.id)Ost defaults to a Redic connection to redis://127.0.0.1:6379. The example
above could be rewritten as:
require "ost-scheduler"
Ost[:event].push_at(@datetime, @feed.id)A worker is a Ruby file with this basic code:
require "ost-scheduler"
Ost[:rss_feeds].each_delayed do |id|
# ...
endAvailable methods
Ost[:example].push_at(datetime, item): add item to
the :example queue in a exactly datetime.
Ost[:example].each_delayed { |item| ... }: consume item from the :example queue. .
Ost.stop: halt processing for all queues.
Ost[:example].stop: halt processing for the example queue.
Installation
$ gem install ost-scheduler