Skip to content

Commit f22e3b4

Browse files
author
Aaron Patterson and Terence Lee
committed
remove references to self and replace with id
1 parent ba65525 commit f22e3b4

File tree

2 files changed

+23
-17
lines changed

2 files changed

+23
-17
lines changed

lib/resque/worker.rb

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -401,15 +401,15 @@ def prune_dead_workers
401401
host, pid, queues = worker.id.split(':')
402402
next unless host == hostname
403403
next if known_workers.include?(pid)
404-
log! "Pruning dead worker: #{worker}"
404+
log! "Pruning dead worker: #{worker.id}"
405405
worker.unregister_worker
406406
end
407407
end
408408

409409
# Registers ourself as a worker. Useful when entering the worker
410410
# lifecycle on startup.
411411
def register_worker
412-
redis.sadd(:workers, self)
412+
redis.sadd(:workers, id)
413413
started!
414414
end
415415

@@ -437,12 +437,12 @@ def unregister_worker(exception = nil)
437437
job.fail(exception || DirtyExit.new)
438438
end
439439

440-
redis.srem(:workers, self)
441-
redis.del("worker:#{self}")
442-
redis.del("worker:#{self}:started")
440+
redis.srem(:workers, id)
441+
redis.del("worker:#{id}")
442+
redis.del("worker:#{id}:started")
443443

444-
Stat.clear("processed:#{self}")
445-
Stat.clear("failed:#{self}")
444+
Stat.clear("processed:#{id}")
445+
Stat.clear("failed:#{id}")
446446
end
447447

448448
# Given a job, tells Redis we're working on it. Useful for seeing
@@ -452,51 +452,51 @@ def working_on(job)
452452
:queue => job.queue,
453453
:run_at => Time.now.rfc2822,
454454
:payload => job.payload
455-
redis.set("worker:#{self}", data)
455+
redis.set("worker:#{id}", data)
456456
end
457457

458458
# Called when we are done working - clears our `working_on` state
459459
# and tells Redis we processed a job.
460460
def done_working
461461
processed!
462-
redis.del("worker:#{self}")
462+
redis.del("worker:#{id}")
463463
end
464464

465465
# How many jobs has this worker processed? Returns an int.
466466
def processed
467-
Stat["processed:#{self}"]
467+
Stat["processed:#{id}"]
468468
end
469469

470470
# Tell Redis we've processed a job.
471471
def processed!
472472
Stat << "processed"
473-
Stat << "processed:#{self}"
473+
Stat << "processed:#{id}"
474474
end
475475

476476
# How many failed jobs has this worker seen? Returns an int.
477477
def failed
478-
Stat["failed:#{self}"]
478+
Stat["failed:#{id}"]
479479
end
480480

481481
# Tells Redis we've failed a job.
482482
def failed!
483483
Stat << "failed"
484-
Stat << "failed:#{self}"
484+
Stat << "failed:#{id}"
485485
end
486486

487487
# What time did this worker start? Returns an instance of `Time`
488488
def started
489-
redis.get "worker:#{self}:started"
489+
redis.get "worker:#{id}:started"
490490
end
491491

492492
# Tell Redis we've started
493493
def started!
494-
redis.set("worker:#{self}:started", Time.now.rfc2822)
494+
redis.set("worker:#{id}:started", Time.now.rfc2822)
495495
end
496496

497497
# Returns a hash explaining the Job we're currently processing, if any.
498498
def job
499-
decode(redis.get("worker:#{self}")) || {}
499+
decode(redis.get("worker:#{id}")) || {}
500500
end
501501
alias_method :processing, :job
502502

@@ -513,7 +513,7 @@ def idle?
513513
# Returns a symbol representing the current worker state,
514514
# which can be either :working or :idle
515515
def state
516-
redis.exists("worker:#{self}") ? :working : :idle
516+
redis.exists("worker:#{id}") ? :working : :idle
517517
end
518518

519519
# Is this worker the same as another worker?

test/worker_test.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -477,6 +477,12 @@ def self.perform
477477
assert_equal @worker.id.split(":")[1].to_i, @worker.pid
478478
end
479479

480+
it "registers itself in the workers list" do
481+
worker = Resque::Worker.new(:aaron)
482+
worker.register_worker
483+
assert_includes Resque::Worker.all, worker
484+
end
485+
480486
it "requeue failed queue" do
481487
queue = 'good_job'
482488
Resque::Failure.create(:exception => Exception.new, :worker => Resque::Worker.new(queue), :queue => queue, :payload => {'class' => 'GoodJob'})

0 commit comments

Comments
 (0)