2017-02-04 25 views
0

Я пытаюсь создать утилиту, которая может запускать некоторые процессы, но до появления процесса, прочитайте его зависимость от конфигурации. Я пытаюсь использовать pyscheduler, который на самом деле описывает, что мне нужно pyScheduler.Использование python 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.

ответ

0

Функция «запуска» планировщика возвращает список объектов, возвращаемых функциями. В вашем примере основной причиной, по которой вы получаете пустой список, может быть то, что «test_function» ничего не возвращает.

Вы хотите играть с параметром «function_kwargs», если вы хотите, чтобы отправить их в «target_function» т.е.

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

вы можете изменить «function_param», установив «function_kwargs». Ex.

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

Функция должна возвращать «2», и вы также должны увидеть, что 2 в возвращенном списке тоже.

Надеюсь, это поможет.