执行特定的任务序列,然后按相反的顺序进行清理。

taskrunner的Python项目详细描述


#taskrunner

执行特定的任务序列,然后进行清理。它对于
运行具有多种不同配置的任务非常有用。它没有任何依赖项,只有标准库。

`` python
sg

def run(self,context):
print self.msg

print self.clean嫒msg


task1={'task':示例task,
'name':'task1',
'msg':'hello world',
'clean嫒msg':'goodbye'}
task2={'task':示例task,
'name':'task2'
'msg':'再次问好',
'clean'u msg':':':'''}


pipeline=[task1,task2]
```

```
`````
$bin/taskrunner-f示例/simple.py pipeline
2013-12-02 19:02 19:46:37952-taskrunner-taskrunner-info-====run task1======2013-12-02 19:37======br/>2013-12-12-02-02:2013-12-02-02:19:02:46:46:3795959519:46:3-taskrunner-信息-====运行任务2===
再次打招呼
2013-12-02 19:46:37953-taskrunner-info----清理任务2-----
:)
2013-12-02 19:46:37953-taskrunner-info----清理任务1-----
再见
````

h特殊项目"任务":示例任务。它会遍历
列表,对于每个任务,它都会实例化'exampletask',其他
字典内容作为参数。然后对所有
任务执行'exampletask.run()'。在它遍历整个列表之后,它将以
相反的顺序遍历它,并对每个项执行"exampletask.cleanup()"。任务可以
写入"context",其内容将传递给下一个任务。


$bin/taskrunner-f examples/simple.py pipeline另一个"任务"pipeline


,甚至合并管道和任务(这将运行*task2*两次):


$bin/taskrunner-f examples/simple.py pipeline task2

要将该工具用作库,可以直接使用"execute":

``python
taskrunner.execute([task1,task2])
```

要跳过清除,可以执行以下操作:


$bin/taskrunner-f examples/simple.py pipeline--cleanup=never

关于"运行"的结果。

不要忘记使清理独立于运行,否则这将不起作用。


但是,它不会清理未运行的任务
(但会清理失败且仅部分执行的任务)。

,按照它们发生的顺序。

发送终止信号agAIN将完全阻止它。这也适用于*sigterm*信号。


要获得更可读的日志,
可以在任务配置中指定关键字"name"。任务名
对于从命令行重新定义配置很重要。

您可以使用
参数"-d"重新定义它。

$bin/taskrunner-f examples/simple.py pipeline-d task1.msg=ping


在配置字典或类名中。如果更多的
任务具有相同的名称,则会为所有任务重写。例如,

$bin/taskrunner-f examples/simple.py pipeline-d example task.msg=ping

将更改"task1"和"task2"的消息,因为它们具有相同的类名。


把所有的东西都放在一个文件里。您可以加载
多个模块并正常引用这些任务。

$bin/taskrunner-f examples/advanced.py-f examples/simple.py\
mytask task1 task2


如果有任何名称冲突,您可以指定模块的名称。

$bin/taskrunner-f examples/advanced.py-f examples/simple.py\
advanced.pipeline

假设"run"已完全执行
*将任务放在一个单独的文件中,该文件将与
任务配置
*一起导入到该文件中使用任务配置文件(仅为`.py'文件)、变量定义和条件通常是足够的。稍后您将能够切换到其他配置
格式。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何从同步请求中获取响应代码   具有深度复制的类中的Java oop getter/setter   java LDAP“简单”用户身份验证(JNDI Tomcat)不稳定?   java将Jenkins jnlp代理设置为通过API以编程方式使用WebSocket   java如何获取在servlet筛选器的静态块中启动的静态类的实例?   前两个数字的java charAt循环不能循环它   java在Spring引导执行器中是否有检查子服务运行状况的标准方法?   java我可以将jacksonmapped@JsonProperties推到“顶层”吗?   json JAVA:opencsv随机读取CSV单元格   无第三方应用程序的java捆绑包JRE   使用openidConnectClient功能的WAS Liberty中出现java无效cookie标头错误   java如何在Restful Web服务中从Http Post获取数组?   java如何读取安卓开发的JSON url?   如何在java IO中打开包含汉字的文件?