fix(backend): a session or bot that fails to start is retried and the failure is logged
This commit is contained in:
1 parent
42469eb9f1
commit
4ce9c5d340
3 files changed
+46
-13
No files matched your search
@@ -167,17 +167,33 @@ class BotRegistry:
|
||||
await client.stop()
|
||||
return
|
||||
|
||||
account_id = await accounts.sync_account(
|
||||
self._pool, me, str(bot_id), is_bot=True
|
||||
)
|
||||
client.capture = await build_bot_capture_context(
|
||||
client, self._pool, self._storage, account_id
|
||||
)
|
||||
await bots.link_account(self._pool, bot_id, account_id)
|
||||
await bots.set_status(
|
||||
self._pool, bot_id, bots.STATUS_OK, username=me.username, title=me.full_name
|
||||
)
|
||||
await accounts.notify_accounts_changed(self._pool)
|
||||
try:
|
||||
account_id = await accounts.sync_account(
|
||||
self._pool, me, str(bot_id), is_bot=True
|
||||
)
|
||||
client.capture = await build_bot_capture_context(
|
||||
client, self._pool, self._storage, account_id
|
||||
)
|
||||
await bots.link_account(self._pool, bot_id, account_id)
|
||||
await bots.set_status(
|
||||
self._pool,
|
||||
bot_id,
|
||||
bots.STATUS_OK,
|
||||
username=me.username,
|
||||
title=me.full_name,
|
||||
)
|
||||
await accounts.notify_accounts_changed(self._pool)
|
||||
except Exception as exc:
|
||||
logger.exception(
|
||||
f"[red]Bot {bot_id} failed to start,[/] retrying on the next sync"
|
||||
)
|
||||
with contextlib.suppress(Exception):
|
||||
await bots.set_status(
|
||||
self._pool, bot_id, bots.STATUS_ERROR, detail=str(exc)
|
||||
)
|
||||
with contextlib.suppress(Exception):
|
||||
await client.stop()
|
||||
return
|
||||
|
||||
consumer = JobConsumer(client, self._pool, account_id)
|
||||
self._running[bot_id] = RunningBot(
|
||||
|
||||
Reference in new issue
Block a user