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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions