Fix some typos and bugs in the worker.
This commit is contained in:
parent
a1164269be
commit
4514f5a969
3 changed files with 22 additions and 9 deletions
11
README.md
11
README.md
|
@ -21,4 +21,13 @@ running:
|
|||
```
|
||||
sudo nginx -c `pwd`/nginx.conf
|
||||
STACK=prod gunicorn -D --workers 4 -b unix:/tmp/gunicorn.sock --worker-class eventlet -t 500 application:application
|
||||
```
|
||||
```
|
||||
|
||||
set up the snapshot script:
|
||||
(instructions in the seo-snapshots directory)[seo-snapshots/README.md]
|
||||
|
||||
start the workers:
|
||||
|
||||
```
|
||||
python -m workers.diffsworker -D
|
||||
```
|
||||
|
|
|
@ -7,7 +7,7 @@ class WorkQueue(object):
|
|||
def __init__(self, queue_name):
|
||||
self.queue_name = queue_name
|
||||
|
||||
def put(message, available_after=0):
|
||||
def put(self, message, available_after=0):
|
||||
"""
|
||||
Put an item, if it shouldn't be processed for some number of seconds,
|
||||
specify that amount as available_after.
|
||||
|
@ -24,7 +24,7 @@ class WorkQueue(object):
|
|||
|
||||
QueueItem.create(**params)
|
||||
|
||||
def get(processing_time=300):
|
||||
def get(self, processing_time=300):
|
||||
"""
|
||||
Get an available item and mark it as unavailable for the default of five
|
||||
minutes.
|
||||
|
@ -35,9 +35,9 @@ class WorkQueue(object):
|
|||
|
||||
# TODO the query and the update should be atomic, but for now we only
|
||||
# have one worker.
|
||||
avaial = QueueItem.select().where(QueueItem.queue_name = self.queue_name,
|
||||
QueueItem.available_after <= now,
|
||||
available_or_expired)
|
||||
avail = QueueItem.select().where(QueueItem.queue_name == self.queue_name,
|
||||
QueueItem.available_after <= now,
|
||||
available_or_expired)
|
||||
|
||||
found = list(avail.limit(1).order_by(QueueItem.available_after))
|
||||
|
||||
|
@ -51,5 +51,5 @@ class WorkQueue(object):
|
|||
|
||||
return None
|
||||
|
||||
def complete(completed_item):
|
||||
def complete(self, completed_item):
|
||||
item.delete_instance()
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
import logging
|
||||
import json
|
||||
import daemon
|
||||
import time
|
||||
|
||||
from apscheduler.scheduler import Scheduler
|
||||
|
||||
|
@ -15,7 +17,7 @@ image_diff_queue = WorkQueue('imagediff')
|
|||
def process_work_items():
|
||||
logger.debug('Getting work item from queue.')
|
||||
|
||||
item = imagediff.get()
|
||||
item = image_diff_queue.get()
|
||||
|
||||
if item:
|
||||
logger.debug('Queue gave us some work: %s' % item.body)
|
||||
|
@ -26,7 +28,6 @@ def process_work_items():
|
|||
else:
|
||||
logger.debug('No work today.')
|
||||
|
||||
|
||||
FORMAT = '%(asctime)-15s - %(levelname)s - %(pathname)s - %(funcName)s - %(message)s'
|
||||
logging.basicConfig(format=FORMAT, level=logging.DEBUG)
|
||||
|
||||
|
@ -34,3 +35,6 @@ sched = Scheduler()
|
|||
sched.start()
|
||||
|
||||
sched.add_interval_job(process_work_items, seconds=10)
|
||||
|
||||
while True:
|
||||
time.sleep(60 * 60 * 24) # sleep one day, basically forever
|
Reference in a new issue