使用python pyscheduler运行依赖任务

时间:2017-02-04 07:41:33

标签: python dependencies scheduler

我正在尝试构建一个可以运行某些进程的实用程序但是在生成进程之前,从配置中读取它的依赖项。我正在尝试使用pyscheduler,它实际上描述了我需要的pyScheduler

from pyscheduler.serialScheduler import SerialScheduler
>>> def test_function():
...     print "Called test_function"
... 
>>> scheduler.add_task(task_name = "1", dependencies = ["2","3"], description ="",target_function = test_function ,function_kwargs={"this":1})
>>> scheduler.add_task(task_name = "2", dependencies = ["4"], description ="",target_function = test_function ,function_kwargs={"this":2})
>>> scheduler.add_task(task_name = "3", dependencies = ["5","6"], description ="",target_function = test_function ,function_kwargs={"this":3})
>>> scheduler.add_task(task_name = "4", dependencies = [], description ="",target_function = test_function ,function_kwargs={"this":4})
>>> scheduler.add_task(task_name = "5", dependencies = [], description ="",target_function = test_function ,function_kwargs={"this":5})
>>> scheduler.add_task(task_name = "6", dependencies = [], description ="",target_function = test_function ,function_kwargs={"this":6})
>>> scheduler.run()
[]

为什么我得到一个空列表? 什么可能是在外部配置文件中而不是在我的python脚本中提供依赖的可能方法。

1 个答案:

答案 0 :(得分:0)

调度程序的“run”函数返回函数返回的对象列表。在您的示例中,您获得空列表的主要原因可能是“test_function”没有返回任何内容。

如果要将它们发送到“target_function”,您将需要使用“function_kwargs”参数,即

def test_function(function_param):
    print "funtion called with param"%function_param
    return function_param

您可以通过设置“function_kwargs”来更改“function_param”。实施例

..., function_kwargs={"function_param": 2})

该函数应返回“2”,您应该在返回的列表中看到2。

希望它有所帮助。