Sha256: b7ecd041dcdc16a456ff82d03216907ecd641fbc8ab7cc68f65dccc59c8df1e8

Contents?: true

Size: 768 Bytes

Versions: 67

Compression:

Stored size: 768 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
    # Options include `pri` (priority), `delay` (delay in secs), `ttr` (time to respond)
    #
    # @example
    #   AsyncProxy.new(User, 10, :pri => 1000, :ttr => 1000)
    #
    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

67 entries across 67 versions & 2 rubygems

Version Path
backburner-allq-1.0.50 lib/backburner/async_proxy.rb
backburner-allq-1.0.49 lib/backburner/async_proxy.rb
backburner-allq-1.0.48 lib/backburner/async_proxy.rb
backburner-1.6.1 lib/backburner/async_proxy.rb
backburner-allq-1.0.47 lib/backburner/async_proxy.rb
backburner-allq-1.0.46 lib/backburner/async_proxy.rb
backburner-allq-1.0.45 lib/backburner/async_proxy.rb
backburner-allq-1.0.44 lib/backburner/async_proxy.rb
backburner-allq-1.0.40 lib/backburner/async_proxy.rb
backburner-allq-1.0.39 lib/backburner/async_proxy.rb
backburner-allq-1.0.38 lib/backburner/async_proxy.rb
backburner-allq-1.0.37 lib/backburner/async_proxy.rb
backburner-allq-1.0.36 lib/backburner/async_proxy.rb
backburner-1.6.0 lib/backburner/async_proxy.rb
backburner-allq-1.0.35 lib/backburner/async_proxy.rb
backburner-allq-1.0.34 lib/backburner/async_proxy.rb
backburner-allq-1.0.33 lib/backburner/async_proxy.rb
backburner-allq-1.0.32 lib/backburner/async_proxy.rb
backburner-allq-1.0.31 lib/backburner/async_proxy.rb
backburner-allq-1.0.29 lib/backburner/async_proxy.rb