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
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
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
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