Я новичок в APScheduler
Для тестирования я установил max_worker=2
и добавил 4 планировщика заданий. Я планировал запустить 2 задания параллельно из-за ограничения threadpool, я подумал, что после завершения определенной работы еще одна добавленная работа будет брошена в threadpool, но результат ниже - это не то, что я ожидал, он просто выполнял первые 2 задания.Как добавить задания в threadpool с APScheduler
Arg is 1, time is Mon Apr 18 19:51:33 2016
Arg is 2, time is Mon Apr 18 19:51:33 2016
No handlers could be found for logger "apscheduler.scheduler"
Arg is 1, time is Mon Apr 18 19:51:37 2016
Arg is 2, time is Mon Apr 18 19:51:37 2016
Arg is 1, time is Mon Apr 18 19:51:41 2016
Arg is 2, time is Mon Apr 18 19:51:41 2016
Arg is 1, time is Mon Apr 18 19:51:45 2016
Arg is 2, time is Mon Apr 18 19:51:45 2016
...
А вот код:
import time
from apscheduler.schedulers.blocking import BlockingScheduler
def job(arg):
print 'Arg is %s, time is %s' % (arg, time.ctime())
time.sleep(2)
if __name__ == '__main__':
scheduler = BlockingScheduler({'apscheduler.executors.default': {'class': 'apscheduler.executors.pool:ThreadPoolExecutor', 'max_workers': '2'}})
scheduler.add_job(job, 'interval', seconds=2, args=(1,))
scheduler.add_job(job, 'interval', seconds=2, args=(2,))
scheduler.add_job(job, 'interval', seconds=2, args=(3,))
scheduler.add_job(job, 'interval', seconds=2, args=(4,))
try:
scheduler.start()
except (KeyboardInterrupt, SystemExit):
pass
Любые способы, чтобы добавить оставшиеся рабочие места для Threadpool или что-то вроде схемы очереди или multiprocessing.dummy.pool