1、add_job() 該方式返回一個aoscheduler.job,Job,可用於以后修改或刪除作業。 2、scheduled_job() 該方法方便什么在應用程序運行時不更改的作業。 2、調度安排工作的時候,如果在添加作業時調度程序尚未運行,則將暫停調度作業,並且僅在調度程序啟動時,才計算其首次運行時間。 3、注意:如果使用序列化執行程序或者作業存儲,則會對作業增加要求 目標對象必須全局可訪問 可調用對象任何參數可序列化 在內置的作業存儲中,只有MemoryJobStore不會序列化作業。在內置執行程序中,只有ProcessPoolExecutor將序列化作業。 如果在應用程序初始化期間在持久性作業存儲安排作業,則必須為該作業定義一個明確ID並使用,replace_existing=True 否則應用程序啟動時,你將獲得作業該作業新副本! replace_existing=True 程序中斷后重新運行時會自動從數據庫讀取作業信息,而不需要重新再添加到調度器中,如果不注釋 21-25 行添加作業的代碼,則作業會重新添加到數據庫中,這樣就有了兩個同樣的作業,避免出現這種情況可以在 add_job 的參數中增加 replace_existing=True,如 在程序中添加add_job 設置id 那么 沒有replace_existing=True 1、會報錯,id重復,如果加了重復id 會被過濾不會報錯。 apscheduler.jobstores.base.ConflictingIdError: 'Job identifier (1234567) conflicts with an existing job'
2、會導致原來的存儲作業被刷新,重新執行。有可能會導致多次執行。