示例#1
0
 def _update_active_work_items(self, queue_status):
     if queue_status.message != "Retry":  # From AbstractQueue._retry_status
         return
     active_items = ActiveWorkItems.all().filter("queue_name =", queue_status.queue_name).get()
     if not active_items:
         return
     return db.run_in_transaction(self._expire_item, active_items.key(), queue_status.active_patch_id)
示例#2
0
    def get(self, queue_name):
        queued_items = WorkItems.all().filter("queue_name =", queue_name).get()
        active_items = ActiveWorkItems.all().filter("queue_name =", queue_name).get()
        statuses = queuestatus.QueueStatus.all().filter("queue_name =", queue_name).order("-date").fetch(15)

        status_groups = []
        last_patch_id = None
        synthetic_patch_id_counter = 0

        for status in statuses:
            patch_id = status.active_patch_id
            if not patch_id or last_patch_id != patch_id:
                status_group = []
                status_groups.append(status_group)
            else:
                status_group = status_groups[-1]
            status_group.append(status)
            last_patch_id = patch_id

        template_values = {
            "display_queue_name": display_name_for_queue(queue_name),
            "work_item_rows": self._rows_for_work_items(queued_items, active_items),
            "status_groups": status_groups,
        }
        self.response.out.write(template.render("templates/queuestatus.html", template_values))
示例#3
0
    def test_basic(self):
        items = ActiveWorkItems()
        queued_items = [1, 2]
        time = datetime.now()
        self.assertEqual(items.next_item(queued_items, time), 1)
        self.assertEqual(items.next_item([1], time), None)
        self.assertEqual(items.next_item([], time), None)

        self.assertEqual(items.time_for_item(1), time)
        self.assertEqual(items.time_for_item(2), None)

        items.expire_item(1)
        self.assertEqual(items.time_for_item(1), None)
    def test_basic(self):
        items = ActiveWorkItems.lookup_by_queue("test-queue")
        queued_items = [1, 2]
        # db.Model only stores dates to second resolution, so we use an explicit datetime without milliseconds.
        time = datetime(2011, 4, 18, 18, 50, 44)
        self.assertEqual(items.next_item(queued_items, time), 1)
        self.assertEqual(items.next_item([1], time), None)
        self.assertEqual(items.next_item([], time), None)

        self.assertEqual(items.time_for_item(1), time)
        self.assertEqual(items.time_for_item(2), None)

        items.expire_item(1)
        # expire_item uses a transaction so it doesn't take effect on the current object.
        self.assertEqual(items.time_for_item(1), time)
        # If we look up the saved object, we see it's been updated.
        items = ActiveWorkItems.lookup_by_queue("test-queue")
        self.assertEqual(items.time_for_item(1), None)
    def test_basic(self):
        items = ActiveWorkItems.lookup_by_queue("test-queue")
        queued_items = [1, 2]
        # db.Model only stores dates to second resolution, so we use an explicit datetime without milliseconds.
        time = datetime(2011, 4, 18, 18, 50, 44)
        self.assertEqual(items.next_item(queued_items, time), 1)
        self.assertEqual(items.next_item([1], time), None)
        self.assertEqual(items.next_item([], time), None)

        self.assertEqual(items.time_for_item(1), time)
        self.assertEqual(items.time_for_item(2), None)

        items.expire_item(1)
        # expire_item uses a transaction so it doesn't take effect on the current object.
        self.assertEqual(items.time_for_item(1), time)
        # If we look up the saved object, we see it's been updated.
        items = ActiveWorkItems.lookup_by_queue("test-queue")
        self.assertEqual(items.time_for_item(1), None)
示例#6
0
 def active_work_items(self):
     return ActiveWorkItems.lookup_by_queue(self._name)
 def _get_patches_waiting(cls, queue_name):
     work_items = WorkItems.lookup_by_queue(queue_name)
     active_work_items = ActiveWorkItems.lookup_by_queue(queue_name)
     return len(set(work_items.item_ids) - set(active_work_items.item_ids))
示例#8
0
文件: queuelog.py 项目: GhostQ/GitSB
 def _get_patches_waiting(cls, queue_name):
     work_items = WorkItems.lookup_by_queue(queue_name)
     active_work_items = ActiveWorkItems.lookup_by_queue(queue_name)
     return len(set(work_items.item_ids) - set(active_work_items.item_ids))
示例#9
0
 def active_work_items(self):
     key_name = "active-work-items-%s" % (self._name)
     return ActiveWorkItems.get_or_insert(key_name=key_name, queue_name=self._name)
示例#10
0
 def active_work_items(self):
     key_name = "active-work-items-%s" % (self._name)
     return ActiveWorkItems.get_or_insert(key_name=key_name,
                                          queue_name=self._name)
示例#11
0
 def _get_next_patch_id(self, queue_name):
     work_items = WorkItems.all().filter("queue_name =", queue_name).get()
     if not work_items:
         return None
     active_work_items = ActiveWorkItems.get_or_insert(key_name=queue_name, queue_name=queue_name)
     return db.run_in_transaction(self._assign_patch, active_work_items.key(), work_items.item_ids)