コード例 #1
0
 def __init__(self, *args, **kwargs):
     super(Channel, self).__init__(*args, **kwargs)
     parts = self.connection.client
     dsn = build_dsn(scheme='postgres',
                     hostname=parts.hostname,
                     port=parts.port,
                     path=parts.virtual_host,
                     username=parts.userid,
                     password=parts.password)
     self.queue = PGQueue(dsn)
コード例 #2
0
ファイル: transport.py プロジェクト: qdqmedia/trunk
class Channel(virtual.Channel):
    def __init__(self, *args, **kwargs):
        super(Channel, self).__init__(*args, **kwargs)
        parts = self.connection.client
        dsn = build_dsn(scheme='postgres', hostname=parts.hostname,
                        port=parts.port, path=parts.virtual_host,
                        username=parts.userid, password=parts.password)
        self.queue = PGQueue(dsn)

    def _new_queue(self, queue, **kwargs):
        self.queue.create(queue)

    def _get(self, queue, timeout=None):
        id, message = self.queue.get_nowait(queue)
        payload = loads(message)
        payload['message_id'] = id
        return payload

    def _put(self, queue, message, **kwargs):
        self.queue.put(queue, dumps(message))

    def _purge(self, queue):
        return self.queue.purge(queue)

    def _restore(self, message):
        return self.queue.restore(message)

    def close(self):
        super(Channel, self).close()
        self.queue.close()
コード例 #3
0
ファイル: transport.py プロジェクト: qdqmedia/trunk
 def __init__(self, *args, **kwargs):
     super(Channel, self).__init__(*args, **kwargs)
     parts = self.connection.client
     dsn = build_dsn(scheme='postgres', hostname=parts.hostname,
                     port=parts.port, path=parts.virtual_host,
                     username=parts.userid, password=parts.password)
     self.queue = PGQueue(dsn)
コード例 #4
0
class Channel(virtual.Channel):
    def __init__(self, *args, **kwargs):
        super(Channel, self).__init__(*args, **kwargs)
        parts = self.connection.client
        dsn = build_dsn(scheme='postgres',
                        hostname=parts.hostname,
                        port=parts.port,
                        path=parts.virtual_host,
                        username=parts.userid,
                        password=parts.password)
        self.queue = PGQueue(dsn)

    def _new_queue(self, queue, **kwargs):
        retry(lambda: self.queue.create(queue), onerror=logger.warning)

    def _get(self, queue, timeout=None):
        _, message = self.queue.get_nowait(queue)
        return loads(message)

    def _put(self, queue, message, **kwargs):
        retry(lambda: self.queue.put(queue, dumps(message)),
              onerror=logger.warning)

    def _purge(self, queue):
        return retry(lambda: self.queue.purge(queue), onerror=logger.warning)

    def close(self):
        super(Channel, self).close()
        self.queue.close()