diff options
Diffstat (limited to 'src/apscheduler/eventbrokers/asyncpg.py')
-rw-r--r-- | src/apscheduler/eventbrokers/asyncpg.py | 12 |
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() |