【问题标题】:Using python pyscheduler to run dependent tasks使用python pyscheduler 运行依赖任务
【发布时间】:2017-02-06 03:40:44
【问题描述】:

我正在尝试构建一个可以运行某些进程的实用程序,但在生成进程之前,请从配置中读取其依赖项。我正在尝试使用 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 脚本中提供依赖关系的可能方法是什么。

【问题讨论】:

    标签: python dependencies scheduler


    【解决方案1】:

    调度程序的“运行”函数返回函数返回的对象列表。在你的例子中,你得到一个空列表的主要原因可能是“test_function”没有返回任何东西。

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

    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。

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-28
      • 1970-01-01
      • 1970-01-01
      • 2015-11-11
      • 1970-01-01
      • 2018-11-25
      • 1970-01-01
      相关资源
      最近更新 更多