eres
07/25/2025, 3:32 AMeres
07/25/2025, 3:34 AMrom prefect import flow, task
from prefect import flow, get_run_logger
import time
from prefect.exceptions import TerminationSignal, Abort
import signal
@task
def my_task():
return "my string"
@task
def my_task1(y):
raise Exception
print(y)
return y
@task
def my_task2(y):
print(y)
return y
@flow
def my_flow_signal():
logger = get_run_logger()
<http://logger.info|logger.info>("This is [bold red]fancy[/]")
try:
future = my_task.submit()
result = future.result(raise_on_failure=True)
except Exception as e:
print("handle execption in my_task")
raise e
try:
future = my_task1.submit(result)
result1 = future.result(raise_on_failure=True)
except Exception as e:
print("handle execption in my_task1")
raise TerminationSignal(signal=signal.SIGTERM)
try:
future = my_task2.submit(result)
result1 = future.result(raise_on_failure=True)
except Exception as e:
print("handle execption in my_task2")
raise e
if __name__ == "__main__":
my_flow_signal()