执行特定的任务序列,然后按相反的顺序进行清理。
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'文件)、变量定义和条件通常是足够的。稍后您将能够切换到其他配置
格式。
执行特定的任务序列,然后进行清理。它对于
运行具有多种不同配置的任务非常有用。它没有任何依赖项,只有标准库。
`` python
sg
def run(self,context):
print self.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'文件)、变量定义和条件通常是足够的。稍后您将能够切换到其他配置
格式。