Skip to content

Does not work with rescue-cleaner #49

@devnut

Description

@devnut

Sometimes Resque.redis.multi seems to return a <Redis::Future [:multi]> instead of an array, in which case Resque.redis.multi.first raises this error.

It was introduced here it seems:

4ae90ae

#<NoMethodError: undefined method `first' for nil:NilClass>

/usr/local/rvm/gems/ruby-2.1.1/gems/resque-loner-1.2.1/lib/resque-ext/job.rb in create_with_loner
      end.first
/usr/local/rvm/gems/ruby-2.1.1/gems/resque-cleaner-0.3.0/lib/resque_cleaner.rb in block (3 levels) in requeue
                Job.create(queue||job['queue'], job['payload']['class'], *job['payload']['args'])
/usr/local/rvm/gems/ruby-2.1.1/gems/redis-namespace-1.4.1/lib/redis/namespace.rb in block in namespaced_block
        yield self
/usr/local/rvm/gems/ruby-2.1.1/gems/redis-3.0.7/lib/redis.rb in block in multi
          yield(self)
/usr/local/rvm/gems/ruby-2.1.1/gems/redis-3.0.7/lib/redis.rb in block in synchronize
    mon_synchronize { yield(@client) }
/usr/local/rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/monitor.rb in mon_synchronize
      yield
/usr/local/rvm/gems/ruby-2.1.1/gems/redis-3.0.7/lib/redis.rb in synchronize
    mon_synchronize { yield(@client) }
/usr/local/rvm/gems/ruby-2.1.1/gems/redis-3.0.7/lib/redis.rb in multi
    synchronize do |client|
/usr/local/rvm/gems/ruby-2.1.1/gems/redis-namespace-1.4.1/lib/redis/namespace.rb in namespaced_block
      result = redis.send(command) do |r|
/usr/local/rvm/gems/ruby-2.1.1/gems/redis-namespace-1.4.1/lib/redis/namespace.rb in multi
        namespaced_block(:multi, &block)
/usr/local/rvm/gems/ruby-2.1.1/gems/resque-cleaner-0.3.0/lib/resque_cleaner.rb in block (2 levels) in requeue
              redis.multi do
/usr/local/rvm/gems/ruby-2.1.1/gems/resque-cleaner-0.3.0/lib/resque_cleaner.rb in each
          @limiter.jobs.each_with_index do |job,i|
/usr/local/rvm/gems/ruby-2.1.1/gems/resque-cleaner-0.3.0/lib/resque_cleaner.rb in each_with_index
          @limiter.jobs.each_with_index do |job,i|
/usr/local/rvm/gems/ruby-2.1.1/gems/resque-cleaner-0.3.0/lib/resque_cleaner.rb in block in requeue
          @limiter.jobs.each_with_index do |job,i|
/usr/local/rvm/gems/ruby-2.1.1/gems/resque-cleaner-0.3.0/lib/resque_cleaner.rb in lock
          yield
/usr/local/rvm/gems/ruby-2.1.1/gems/resque-cleaner-0.3.0/lib/resque_cleaner.rb in requeue
        @limiter.lock do
/usr/local/rvm/gems/ruby-2.1.1/gems/resque-cleaner-0.3.0/lib/resque_cleaner/server.rb in block (2 levels) in included
            when "retry_and_clear" then cleaner.requeue(true,&block)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions