diff --git a/daemons/mailbox.py b/daemons/mailbox.py index 99297ed..c8a5e3c 100644 --- a/daemons/mailbox.py +++ b/daemons/mailbox.py @@ -25,4 +25,7 @@ class Daemon(base.Daemon, queues.TasksHandlerMixin): reply_markup = payload.get('reply_markup') if reply_markup: body['reply_markup'] = reply_markup - self.bot.send_message(**body, parse_mode='Markdown') + try: + self.bot.send_message(**body, parse_mode='Markdown') + except Exception as exc: + print('Error', str(exc)) diff --git a/utils/queues.py b/utils/queues.py index c34e10d..c00a18c 100644 --- a/utils/queues.py +++ b/utils/queues.py @@ -17,22 +17,22 @@ class QueuesException(Exception): class TasksHandlerMixin: def poll(self): while True: - response = requests.get(f'{QUEUES_URL}/api/v1/take', headers={'queue': self.queue_name}) - if response.status_code == 404: + response = requests.get(f'{QUEUES_URL}/api/v1/take', headers={'queue': self.queue_name}).json() + task = response.get('task') + if not task: time.sleep(0.2) continue - data = response.json() try: - self.process(data['payload']) + self.process(task['payload']) except Exception as exc: - print(f'Error processing message id={data["id"]}, payload={data["payload"]}, exc={exc}') + print(f'Error processing message id={task["id"]}, payload={task["payload"]}, exc={exc}') continue try: - resp = requests.post(f'{QUEUES_URL}/api/v1/finish', json={'id': data['id']}) + resp = requests.post(f'{QUEUES_URL}/api/v1/finish', json={'id': task['id']}) if resp.status_code != 202: raise QueuesException except: - print(f'Failed to finish task id={data["id"]}') + print(f'Failed to finish task id={task["id"]}') @property def queue_name(self):