3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# File 'lib/pg_queue/worker.rb', line 3
def start
@running = true
PgQueue.connection.listen(:pg_queue_jobs)
while running?
job = PgQueue.dequeue
if job
perform(job)
sleep(PgQueue.interval) if PgQueue.interval > 0
next
end
PgQueue.logger.debug("waiting for jobs")
PgQueue.connection.wait_for_notify do |event, pid, payload|
if payload == "stop"
PgQueue.logger.debug("stop notify received")
stop
else
PgQueue.logger.debug("let's perform some jobs")
end
end
end
PgQueue.connection.unlisten(:pg_queue_jobs)
end
|