prefect是什么?
建议自己查查资料,看看官网:https://docs.prefect.io/v3/get-started

本片prefect搭建之旅,即避坑指南
prefect体系
第一步要了解以下几个重要组件
1)server
这是一个中央服务,有webui,可以管理任务。日常使用主要就是这个server组件服务,一般是部署一个服务就行,考虑使用docker方式启动。
对于server有很多种服务,开源自己搭建原生server,或者购买cloud服务。
2)work
这是一个task执行器,对于server来说work是分布式组建,会有很多个。一般一个"服务器"上启动一个work,然后这个服务器上work执行服务器上的task脚本(即python)。server向work通信,或者work上报task执行日志给server,用户在server上管理task。
3)task
具体的python任务,通过@flow注解启动一个prefect的task。一个python工程内会有很多个任务脚本,一个任务脚本理解就是一个task。

prefect部署
分两种:宿主机直接部署、docker容器方式部署
原本尝试server和work全部采用docker方式启动,最后卡在work启动通信失败。需要自己去构建一个work太麻烦,本身task和work需要在一个服务器上,因为work启动task时需要找到对应脚本所在位置,也需要本机python环境保持一致,便放弃work容器部署。