Esempio n. 1
0
    def get(self, queue, message_id, project):
        if project is None:
            project = ''

        mid = utils.msgid_decode(message_id)
        if mid is None:
            raise errors.MessageDoesNotExist(message_id, queue, project)

        try:
            content, ttl, age = self.driver.get('''
                select content, ttl, julianday() * 86400.0 - created
                  from Queues as Q join Messages as M
                    on qid = Q.id
                 where ttl > julianday() * 86400.0 - created
                   and M.id = ? and project = ? and name = ?
                ''', mid, project, queue)

        except utils.NoResult:
            raise errors.MessageDoesNotExist(message_id, queue, project)

        return {
            'id': message_id,
            'ttl': ttl,
            'age': int(age),
            'body': content,
        }
Esempio n. 2
0
    def get(self, queue, message_id, project):
        if project is None:
            project = ''

        mid = utils.msgid_decode(message_id)
        if mid is None:
            raise exceptions.MessageDoesNotExist(message_id, queue, project)

        try:
            content, ttl, age = self.driver.get(
                '''
                select content, ttl, julianday() * 86400.0 - created
                  from Queues as Q join Messages as M
                    on qid = Q.id
                 where ttl > julianday() * 86400.0 - created
                   and M.id = ? and project = ? and name = ?
                ''', mid, project, queue)

        except utils.NoResult:
            raise exceptions.MessageDoesNotExist(message_id, queue, project)

        return {
            'id': message_id,
            'ttl': ttl,
            'age': int(age),
            'body': content,
        }
Esempio n. 3
0
    def get(self, queue, message_id, project):
        if project is None:
            project = ""

        mid = utils.msgid_decode(message_id)
        if mid is None:
            raise errors.MessageDoesNotExist(message_id, queue, project)

        try:
            content, ttl, age = self.driver.get(
                """
                select content, ttl, julianday() * 86400.0 - created
                  from Queues as Q join Messages as M
                    on qid = Q.id
                 where ttl > julianday() * 86400.0 - created
                   and M.id = ? and project = ? and name = ?
                """,
                mid,
                project,
                queue,
            )

        except utils.NoResult:
            raise errors.MessageDoesNotExist(message_id, queue, project)

        return {"id": message_id, "ttl": ttl, "age": int(age), "body": content}
Esempio n. 4
0
    def delete(self, queue, message_id, project, claim=None):
        if project is None:
            project = ''

        id = utils.msgid_decode(message_id)
        if id is None:
            return

        with self.driver('immediate'):
            message_exists, = self.driver.get(
                '''
                select count(M.id)
                  from Queues as Q join Messages as M
                    on qid = Q.id
                 where ttl > julianday() * 86400.0 - created
                   and M.id = ? and project = ? and name = ?
            ''', id, project, queue)

            if not message_exists:
                return

            if claim is None:
                self.__delete_unclaimed(id)
            else:
                self.__delete_claimed(id, claim)
Esempio n. 5
0
    def delete(self, queue, message_id, project, claim=None):
        if project is None:
            project = ""

        id = utils.msgid_decode(message_id)
        if id is None:
            return

        with self.driver("immediate"):
            message_exists, = self.driver.get(
                """
                select count(M.id)
                  from Queues as Q join Messages as M
                    on qid = Q.id
                 where ttl > julianday() * 86400.0 - created
                   and M.id = ? and project = ? and name = ?
            """,
                id,
                project,
                queue,
            )

            if not message_exists:
                return

            if claim is None:
                self.__delete_unclaimed(id)
            else:
                self.__delete_claimed(id, claim)