summaryrefslogtreecommitdiff
path: root/src/apscheduler/eventbrokers/asyncpg.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/apscheduler/eventbrokers/asyncpg.py')
-rw-r--r--src/apscheduler/eventbrokers/asyncpg.py12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/apscheduler/eventbrokers/asyncpg.py b/src/apscheduler/eventbrokers/asyncpg.py
index 4ee2339..27b1bed 100644
--- a/src/apscheduler/eventbrokers/asyncpg.py
+++ b/src/apscheduler/eventbrokers/asyncpg.py
@@ -130,10 +130,14 @@ class AsyncpgEventBroker(LocalAsyncEventBroker, DistributedEventBrokerMixin):
async def start(self) -> None:
await super().start()
- self._send = cast(
- MemoryObjectSendStream[str],
- await self._task_group.start(self._listen_notifications),
- )
+ try:
+ self._send = cast(
+ MemoryObjectSendStream[str],
+ await self._task_group.start(self._listen_notifications),
+ )
+ except BaseException:
+ await super().stop(force=True)
+ raise
async def stop(self, *, force: bool = False) -> None:
self._send.close()