def post(self): queue_name = self.request.get("queue_name") # FIXME: This queue lookup should be shared between handlers. queue = Queue.queue_with_name(queue_name) if not queue: self.error(404) return attachment_id = self._int_from_request("attachment_id") attachment = Attachment(attachment_id) last_status = attachment.status_for_queue(queue) # Ideally we should use a transaction for the calls to # WorkItems and ActiveWorkItems. # Only remove it from the queue if the last message is not a retry request. # Allow removing it from the queue even if there is no last_status for easier testing. if not last_status or not last_status.is_retry_request(): queue.work_items().remove_work_item(attachment_id) RecordPatchEvent.stopped(attachment_id, queue_name) else: RecordPatchEvent.retrying(attachment_id, queue_name) # Always release the lock on the item. queue.active_work_items().expire_item(attachment_id)
def post(self): queue_status = self._queue_status_from_request() queue_status.put() RecordBotEvent.record_activity(queue_status.queue_name, queue_status.bot_id) if queue_status.active_patch_id: RecordPatchEvent.updated(queue_status.active_patch_id, queue_status.queue_name, queue_status.bot_id) self.response.out.write(queue_status.key().id())
def post(self): queue_status = self._queue_status_from_request() queue_status.put() RecordBotEvent.record_activity(queue_status.queue_name, queue_status.bot_id) if queue_status.active_patch_id: RecordPatchEvent.updated(queue_status.active_patch_id, queue_status.queue_name, queue_status.message, queue_status.bot_id) self.response.out.write(queue_status.key().id())
def get(self, queue_name): queue = Queue.queue_with_name(queue_name) if not queue: self.error(404) return # FIXME: Patch assignment should probably move into Queue. patch_id = db.run_in_transaction(self._assign_patch, queue.active_work_items().key(), queue.work_items().item_ids) if not patch_id: self.error(404) return RecordPatchEvent.started(patch_id, queue_name) self.response.out.write(patch_id)
def post(self): queue = self._queue_from_request() if not queue: self.response.set_status(500) return high_priority_items, items = self._work_items_from_request() # Add items that are not currently in the work queue. Never remove any items, # as that should be done by the queue, feeder only adds them. added_items = queue.work_items().add_work_items(high_priority_items, items) for work_item in added_items: RecordPatchEvent.added(work_item, queue.name())
def post(self): queue_name = self.request.get("queue_name") # FIXME: This queue lookup should be shared between handlers. queue = Queue.queue_with_name(queue_name) if not queue: self.error(404) return attachment_id = self._int_from_request("attachment_id") attachment = Attachment(attachment_id) last_status = attachment.status_for_queue(queue) # Ideally we should use a transaction for the calls to # WorkItems and ActiveWorkItems. queue.work_items().remove_work_item(attachment_id) RecordPatchEvent.stopped(attachment_id, queue_name, last_status.message) queue.active_work_items().expire_item(attachment_id)
def post(self): queue = self._queue_from_request() if not queue: self.response.set_status(500) return work_items = queue.work_items() old_items = set(work_items.item_ids) success = self._update_work_items_from_request(work_items) if not success: self.response.set_status(500) return new_items = set(work_items.item_ids) work_items.put() for work_item in new_items - old_items: RecordPatchEvent.added(work_item, queue.name()) for work_item in old_items - new_items: RecordPatchEvent.stopped(work_item, queue.name())
def post(self): queue_name = self.request.get("queue_name") # FIXME: This queue lookup should be shared between handlers. queue = Queue.queue_with_name(queue_name) if not queue: self.error(404) return attachment_id = self._int_from_request("attachment_id") attachment = Attachment(attachment_id) last_status = attachment.status_for_queue(queue) # Ideally we should use a transaction for the calls to # WorkItems and ActiveWorkItems. queue.work_items().remove_work_item(attachment_id) RecordPatchEvent.stopped(attachment_id, queue_name) queue.active_work_items().expire_item(attachment_id)
def _add_attachment_to_ews_queues(self, attachment): for queue in Queue.all_ews(): # all_ews() currently includes the style-queue if self._should_add_to_ews_queue(queue, attachment): queue.work_items().add_work_item(attachment.id) RecordPatchEvent.added(attachment.id, queue.name())