pipeline(runner): add support for SIGTERM
This commit is contained in:
@@ -12,6 +12,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
- `PipelineTask` now has a `has_finished()` method to indicate if the task has
|
- `PipelineTask` now has a `has_finished()` method to indicate if the task has
|
||||||
completed. If a task is never ran `has_finished()` will return False.
|
completed. If a task is never ran `has_finished()` will return False.
|
||||||
|
|
||||||
|
- `PipelineRunner` now supports SIGTERM. If received, the runner will be
|
||||||
|
canceled.
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
- Fixed an error closing local audio transports.
|
- Fixed an error closing local audio transports.
|
||||||
|
|||||||
@@ -43,11 +43,15 @@ class PipelineRunner:
|
|||||||
loop = asyncio.get_running_loop()
|
loop = asyncio.get_running_loop()
|
||||||
loop.add_signal_handler(
|
loop.add_signal_handler(
|
||||||
signal.SIGINT,
|
signal.SIGINT,
|
||||||
lambda *args: asyncio.create_task(self._sigint_handler())
|
lambda *args: asyncio.create_task(self._sig_handler())
|
||||||
|
)
|
||||||
|
loop.add_signal_handler(
|
||||||
|
signal.SIGTERM,
|
||||||
|
lambda *args: asyncio.create_task(self._sig_handler())
|
||||||
)
|
)
|
||||||
|
|
||||||
async def _sigint_handler(self):
|
async def _sig_handler(self):
|
||||||
logger.warning(f"Ctrl-C detected. Canceling runner {self}")
|
logger.warning(f"Interruption detected. Canceling runner {self}")
|
||||||
await self.cancel()
|
await self.cancel()
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
|
|||||||
Reference in New Issue
Block a user