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