def create(self, queue, metadata, project, limit=10): if project is None: project = '' with self.driver('immediate'): qid = utils.get_qid(self.driver, queue, project) # Clean up all expired claims in this queue self.driver.run(''' delete from Claims where ttl <= julianday() * 86400.0 - created and qid = ?''', qid) self.driver.run(''' insert into Claims values (null, ?, ?, julianday() * 86400.0) ''', qid, metadata['ttl']) id = self.driver.lastrowid self.driver.run(''' insert into Locked select last_insert_rowid(), id from Messages left join Locked on id = msgid where msgid is null and ttl > julianday() * 86400.0 - created and qid = ? limit ?''', qid, limit) messages_ttl = metadata['ttl'] + metadata['grace'] self.__update_claimed(id, messages_ttl) return (utils.cid_encode(id), self.__get(id))
def create(self, queue, metadata, project, limit=None): if project is None: project = "" if limit is None: limit = CFG.default_message_paging with self.driver("immediate"): try: qid = utils.get_qid(self.driver, queue, project) except exceptions.QueueDoesNotExist: return None, iter([]) # Clean up all expired claims in this queue self.driver.run( """ delete from Claims where ttl <= julianday() * 86400.0 - created and qid = ?""", qid, ) self.driver.run( """ insert into Claims values (null, ?, ?, julianday() * 86400.0) """, qid, metadata["ttl"], ) id = self.driver.lastrowid self.driver.run( """ insert into Locked select last_insert_rowid(), id from Messages left join Locked on id = msgid where msgid is null and ttl > julianday() * 86400.0 - created and qid = ? limit ?""", qid, limit, ) messages_ttl = metadata["ttl"] + metadata["grace"] self.__update_claimed(id, messages_ttl) return (utils.cid_encode(id), self.__get(id))
def create(self, queue, metadata, project, limit=None): if project is None: project = '' if limit is None: limit = CFG.default_message_paging with self.driver('immediate'): try: qid = utils.get_qid(self.driver, queue, project) except exceptions.QueueDoesNotExist: return None, iter([]) # Clean up all expired claims in this queue self.driver.run(''' delete from Claims where ttl <= julianday() * 86400.0 - created and qid = ?''', qid) self.driver.run(''' insert into Claims values (null, ?, ?, julianday() * 86400.0) ''', qid, metadata['ttl']) id = self.driver.lastrowid self.driver.run(''' insert into Locked select last_insert_rowid(), id from Messages left join Locked on id = msgid where msgid is null and ttl > julianday() * 86400.0 - created and qid = ? limit ?''', qid, limit) messages_ttl = metadata['ttl'] + metadata['grace'] self.__update_claimed(id, messages_ttl) return (utils.cid_encode(id), self.__get(id))