Implement against new Clair paginated notification system
This commit is contained in:
parent
b34314a584
commit
f498e92d58
10 changed files with 447 additions and 101 deletions
|
@ -228,16 +228,26 @@ class WorkQueue(object):
|
|||
except QueueItem.DoesNotExist:
|
||||
return False
|
||||
|
||||
def extend_processing(self, item, seconds_from_now, minimum_extension=MINIMUM_EXTENSION):
|
||||
def extend_processing(self, item, seconds_from_now, minimum_extension=MINIMUM_EXTENSION,
|
||||
updated_data=None):
|
||||
with self._transaction_factory(db):
|
||||
try:
|
||||
queue_item = self._item_by_id_for_update(item.id)
|
||||
new_expiration = datetime.utcnow() + timedelta(seconds=seconds_from_now)
|
||||
has_change = False
|
||||
|
||||
# Only actually write the new expiration to the db if it moves the expiration some minimum
|
||||
if new_expiration - queue_item.processing_expires > minimum_extension:
|
||||
queue_item.processing_expires = new_expiration
|
||||
has_change = True
|
||||
|
||||
if updated_data is not None:
|
||||
queue_item.body = updated_data
|
||||
has_change = True
|
||||
|
||||
if has_change:
|
||||
queue_item.save()
|
||||
|
||||
except QueueItem.DoesNotExist:
|
||||
return
|
||||
|
||||
|
|
Reference in a new issue