Exemple #1
0
    def queue(self):
        # due to error in couchdb this reads from json output - see dao view
        res = self.queueids
        items = []
        for id in res:
            my_item = ItemFactory.get(self.dao, id, ProviderFactory.get_provider, default_settings.PROVIDERS)
            items.append(my_item)

        return items
Exemple #2
0
 def queue(self):
     res = self.queueids
     items = []
     # using reversed() as a hack...we actually want to use the couchdb
     # descending=true param to get the oldest stuff first, but
     for id in res:
         my_item = ItemFactory.get(self.dao, item_id, ProviderFactory.get_provider, default_settings.PROVIDERS)
         items.append(my_item)
     return items
Exemple #3
0
def make_item_dict(tiid):
    '''Utility function for /item and /items endpoints
    Will cause the request to abort with 404 if item is missing from db'''
    try:
        item = ItemFactory.get(mydao,
            tiid,
            ProviderFactory.get_provider,
            app.config["PROVIDERS"])
        item_dict = item.as_dict()
    except LookupError:
        abort(404)
    return item_dict
Exemple #4
0
    def dequeue(self):
        item_ids = self.queueids
        found = None

        # Synchronised section
        # This will the the item out of the queue by recording that we
        # have seen the item.
        metric_queue_lock.acquire()

        for item_id in item_ids:
            if not metric_queue_seen.has_key((item_id, self.provider)):
                log.debug("found item %s" % item_id)
                metric_queue_seen[(item_id, self.provider)] = True
                found = item_id
                break

        metric_queue_lock.release()

        if found:
            return ItemFactory.get(self.dao, item_id, ProviderFactory.get_provider, default_settings.PROVIDERS)
        else:
            return None