Sha256: 891a9e271a081ddfe5b7f56c25f25882955f070e65f456bbc826a6dd54d094e3
Contents?: true
Size: 735 Bytes
Versions: 1
Compression:
Stored size: 735 Bytes
Contents
module Backburner # BasicObject for 1.8.7 class BasicObject instance_methods.each do |m| undef_method(m) if m.to_s !~ /(?:^__|^nil?$|^send$|^object_id$)/ end end unless defined?(::BasicObject) # Class allows async task to be proxied class AsyncProxy < BasicObject # AsyncProxy(User, 10, :pri => 1000, :ttr => 1000) # Options include `pri` (priority), `delay` (delay in secs), `ttr` (time to respond) def initialize(klazz, id=nil, opts={}) @klazz, @id, @opts = klazz, id, opts end # Enqueue as job when a method is invoked def method_missing(method, *args, &block) ::Backburner::Worker.enqueue(@klazz, [@id, method, *args], @opts) end end # AsyncProxy end # Backburner
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
backburner-0.0.1 | lib/backburner/async_proxy.rb |