我們有要求在當前作業執行時動態安排多個作業。Python Apscheduler未關閉
大致情況是:
應該有一個調度程序要經過的應用每天一個表(假設於06:00 UTC)。 查找誰擁有今天的日期時間的用戶作爲resume_dttime 動態調度該用戶的工作,並在今天的resume_dttime 開始他的服務所以我的代碼是:
from apscheduler.schedulers.blocking import BlockingScheduler
sched = BlockingScheduler()
def scheduled_job():
"""
"""
liveusers = todays_userslist() #Get users from table with todays resume_dttime
for u in liveusers:
user_job = get_userjob(u.id)
runtime = u.resume_dttime #eg u.resume_dttime is datetime(2015, 12, 13, 16, 30, 5)
sched.add_job(user_job, 'date', run_date=runtime, args=[u.name])
if __name__ == "__main__":
scheduled_job()
sched.start()
sched.shutdown(wait=True)
代碼效果很好(一次作業)。沒有檢查多個工作,但它不會停下來。我試圖去除循環。另外,經歷了google的許多疑問。但沒有運氣:( 要退出,每一次,我需要通過CTrl+C
退出
其中代碼塊?在運行調度程序或之前?你可以發送你的CTRL-C回溯? –
我不明白爲什麼阻塞wouldn不是預期的行爲,調度程序的作用是在後臺運行,偶爾會啓動一項工作,我是否缺少某些東西?cron是運行到我的背景的唯一替代方案。 –