当前位置:   article > 正文

python工作任务流flow实时框架:prefect_python prefect

python prefect

python工作任务流flow实时框架:prefect

prefect是一个python的工作任务流调度实时框架,prefect可以快速构建平台系统复杂模块间工作流的监测。当平台系统模块之间的调用链越来越复杂时候,任务执行起来,已经很难盘点清楚程序逻辑和工作流运转的路线图。prefect通过简单的@注解,即可清晰在线、实时的梳理清楚系统运行“思维导图”。

prefect是github的开源项目

GitHub - PrefectHQ/prefect: The easiest way to coordinate your dataflowThe easiest way to coordinate your dataflow. Contribute to PrefectHQ/prefect development by creating an account on GitHub.https://github.com/PrefectHQ/prefect

安装:

pip install -U prefect

工作任务流例子

@flow可以嵌套使用,@flow里面可以调用@task的任务。但@task不能反过调用@flow,原则上尽量使用@flow,@task是程序代码的最小原子单位。

  1. import time
  2. from prefect import flow, task, get_run_logger
  3. @task(retries=2, retry_delay_seconds=30)
  4. def failure():
  5. print('running')
  6. raise Exception('异常')
  7. @flow(name="my_flow_b", timeout_seconds=15)
  8. def flowb(param: str):
  9. time.sleep(20)
  10. return 'OKb'
  11. @flow(name="my_flow_a")
  12. def flowa(param: str):
  13. time.sleep(15)
  14. failure.submit()
  15. return 'OKa'
  16. @flow(name="my_flow_2", description='第二个工作流')
  17. def flow2():
  18. logger = get_run_logger()
  19. logger.info('启动flow2')
  20. time.sleep(3)
  21. flowb('start b')
  22. return 'OK2'
  23. @flow(name="my_flow_1", description='第一个工作流')
  24. def flow1():
  25. logger = get_run_logger()
  26. logger.info('启动flow1')
  27. time.sleep(2)
  28. flowa('start a')
  29. return 'OK1'
  30. if __name__ == '__main__':
  31. flow1()
  32. flow2()

程序运行后,在控制台使用命令启动prefect服务器端:

prefect orion start

默认prefect启动在http://127.0.0.1:4200,浏览器打开:

查看flow1运行时日志:

flowa中的实时log日志:

flowb的启动参数

prefect的配置管理和设置

可以在控制台查看prefect的配置项:

prefect config view

默认的prefect启动端口在4200,用户通过127.0.0.1:4200访问,可以通过配置设置新的启动端口:

prefect config set PREFECT_ORION_API_PORT=1234

指定prefect启动在1234端口。

 然后重启服务器即可:

prefect orion start

prefect的API开发文档

prefect的后端服务器也可以通过REST API访问调用。prefect的文档可以直接查看:
http://127.0.0.1:4200/docs


http://127.0.0.1:4200/redoc 


 

以上效果均在Windows环境下跑出来。prefect有更多的功能,值得研究和使用。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/927189
推荐阅读
相关标签
  

闽ICP备14008679号