Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Home

mrflip edited this page · 11 revisions
Clone this wiki locally

Check out

Basic usage

  class Broker
    require 'memcached'
    QUEUE_SLEEP_TIME  = 200
    MEMCACHED_TIMEOUT = 0.250
    def queue
      @queue ||= Memcached.new(['localhost:22133'], :timeout => MEMCACHED_TIMEOUT)
    end

    def process_tasks &block
      loop do
        task = start_task or next
        yield task
        complete_task
      end
    end
    
    # Retrieve a task. Returns nil on error or timeout
    def start_task
      begin
        task = queue.get("#{task}/open/t=#{QUEUE_SLEEP_TIME}") 
      rescue RuntimeError => e; warn e ; return ; end
    end

    def complete_task
       queue.get("#{task}/close") rescue nil
    end

  end
Something went wrong with that request. Please try again.