2015-12-01 6 views
0

У меня появилось неожиданное поведение в библиотеке apscheduler в python.функция запланированных заданий вызывается несколько раз в библиотеке APScheduler в python

здесь У меня есть простой код для вызова основной функции как:

import sys 
from time import sleep 
from datetime import datetime 
from apscheduler.scheduler import Scheduler 
import logging 
logging.basicConfig() 
count = 0; 

    # start the scheduler 

# define the function that is to be executed 
# it will be executed in a thread by the scheduler 
def my_job(): 



    print "hello world" 


def main(): 

    sched = None 


    while True: 


     sched=Scheduler() 

     sched.start() 

     sched.add_cron_job(my_job,second=3) 

     sched.print_jobs() 


     sleep(5) 
     sys.stdout.write('.'); sys.stdout.flush() 


############################################################## 

if __name__ == "__main__": 
    main() 

Здесь у меня есть функция для печати простой строки, и я хочу, чтобы этот вызов этого my_job так я назвал my- func с использованием планировщика как

sched.add_cron_job(my_job,second=3) 

Программа вызывает желаемую функцию, но в течение третьей секунды каждой минуты. Он печатает несколько мира привета в

hello world 
hello world 
hello world 

несколько раз, когда время выполнения Достойно.

Я путаюсь с поведением планировщика. как он может вызвать функцию несколько раз, когда время планирования соответствует?

ответ

1

Он печатает несколько миров приветствия, потому что вы создаете новый планировщик на каждой итерации в своем бесконечном цикле. Ожидаете ли вы, что планировщики из предыдущих итераций просто остановились при создании нового?