Python 工作流引擎
项目描述
WfEpy(Python 工作流引擎)是用于创建工作流和自动化各种流程的 Python 库。它的设计尽可能简单,因此开发人员可以专注于任务逻辑,而不是如何执行工作流、存储状态等。
工作流中的各个步骤只是带有装饰器的函数,任务之间的转换也由装饰器定义。开发人员需要做的就是向实现任务逻辑的函数添加一些装饰器。然后使用该库从任务和转换构建图,并通过遍历图和调用任务函数在工作流中执行任务。传递给每个函数的上下文是任意用户对象,可用于存储数据、连接到其他服务或 API,......
@wfepy.task()
@wfepy.start_point()
@wfepy.followed_by('make_coffee')
def start(context):
...
@wfepy.task()
@wfepy.followed_by('drink_coffee')
def make_coffee(context):
...
@wfepy.task()
@wfepy.followed_by('end')
def drink_coffee(context):
...
@wfepy.task()
@wfepy.end_point()
def end(context):
...
WfEpy 不提供任何服务器调度程序或类似的东西。它被设计用于脚本,例如由 cron 定期执行的脚本。如果工作流具有无法在单次运行库中完成的任务,则提供了如何存储运行器的当前状态(包括用户数据)并在下次运行时恢复它的方法。
import coffee_workflow
wf = wfepy.Workflow()
wf.load_tasks(coffee_workflow)
runner = wf.create_runner()
if restore_state:
runner.load('state-file')
runner.run()
runner.dump('state-file')
这个简单的设计提供了许多选项来执行您的工作流程并对其进行自定义。这也是创建这个库的原因,我们不想管理执行几个简单工作流的新服务/服务器。我们想使用我们已经拥有的服务,例如 Jenkins、cron、……
安装
使用 pip 安装它
pip3 install wfepy
或克隆存储库
git clone https://github.com/redhat-aqe/wfepy.git cd wfepy
并安装包含依赖项的 Python 包
python3 setup.py install