示例#1
0
    def __call__(self):
        """
        Trigger pulled.
        Execute the request.
        """
        if not self._pending:
            raise Exception('trigger already executed')
        self._pending = False

        # asynchronous
        if self._policy.reply:
            return self._send(reply=self._policy.reply)
        if self._policy.wait == Trigger.NOWAIT:
            return self._send()

        # synchronous
        queue = Queue()
        queue.durable = False
        queue.declare(self._policy.url)
        reply = queue.name

        if self._policy.exchange:
            exchange = Exchange(self._policy.exchange)
            exchange.bind(queue, self._policy.url)
            reply = '/'.join((self._policy.exchange, queue.name))

        try:
            return self._send(reply=reply, queue=queue)
        finally:
            queue.purge(self._policy.url)
            queue.delete(self._policy.url)
示例#2
0
文件: policy.py 项目: jortel/gofer
    def __call__(self):
        """
        Trigger pulled.
        Execute the request.
        """
        if not self._pending:
            raise Exception('trigger already executed')
        self._pending = False

        # asynchronous
        if self._policy.reply:
            return self._send(reply=self._policy.reply)
        if self._policy.wait == Trigger.NOWAIT:
            return self._send()

        # synchronous
        queue = Queue()
        queue.durable = False
        queue.declare(self._policy.url)
        reply = queue.name

        if self._policy.exchange:
            exchange = Exchange(self._policy.exchange)
            exchange.bind(queue, self._policy.url)
            reply = '/'.join((self._policy.exchange, queue.name))

        try:
            return self._send(reply=reply, queue=queue)
        finally:
            queue.purge(self._policy.url)
            queue.delete(self._policy.url)
示例#3
0
 def teardown(self):
     """
     Teardown the broker model.
     """
     if self.managed < 2:
         return
     try:
         url = self.plugin.url
         queue = Queue(self.queue)
         queue.purge(url)
         queue.delete(url)
     except NotFound:
         pass
示例#4
0
 def teardown(self):
     """
     Teardown the broker model.
     """
     if self.managed < 2:
         return
     try:
         url = self.plugin.url
         queue = Queue(self.queue)
         queue.purge(url)
         queue.delete(url)
     except NotFound:
         pass
示例#5
0
    def delete_queue(url, name):
        """
        Purge and delete the agent queue.
        :param url: The broker URL.
        :type url: str
        :param name: The queue name.
        :type name: str
        """
        add_connector()
        queue = Queue(name, url)

        try:
            queue.purge()
            queue.delete()
        except NotFound:
            # queue may not exist
            pass
示例#6
0
    def delete_queue(url, name):
        """
        Purge and delete the agent queue.
        :param url: The broker URL.
        :type url: str
        :param name: The queue name.
        :type name: str
        """
        add_connector()
        queue = Queue(name, url)

        try:
            queue.purge()
            queue.delete()
        except NotFound:
            # queue may not exist
            pass