簡體   English   中英

如何強制apscheduler將作業添加到作業存儲?

[英]How to force apscheduler to add jobs to the job store?

我正在使用腳本使用apscheduler向調度程序添加作業。 不幸的是,在使用腳本時沒有正確安排作業,因為我沒有啟動調度程序。

scheduler = self.getscheduler() # initializes and returns scheduler
scheduler.add_job(trigger=trigger, func = function, jobstore = 'mongo') #sample code. Note that I did not call scheduler.start()

我正在看一條消息: apscheduler.scheduler - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts

該腳本應該向調度程序添加作業(不是在該特定實例上運行調度程序),並且在添加到數據庫的作業事件中還有一些其他信息要添加。 是否可以添加作業並強制調度程序將其添加到作業庫而無需實際運行調度程序?

我知道,可以在添加每個作業后啟動和關閉調度程序,以使調度程序將作業信息保存到作業庫中。 這真是一個好方法嗎?

編輯:我的初衷是隔離我的軟件的初始化過程。 我只想將一些作業添加到尚未啟動的調度程序中。 真正的問題是我已經允許用戶啟動和停止調度程序。 我不能保證系統中有一個正在運行的調度程序實例。 我通過啟動調度程序並在添加作業后將其關閉來暫時解決問題。 有用。

您必須有一些方法來通知調度程序已添加作業,以便它可以喚醒並調整延遲到下一次喚醒。 最好通過某種RPC機制來做到這一點。 我不知道什么樣的機制適合您的特定用例。 但RPyC和Execnet是很好的候選人。 使用其中一個或其他東西來遠程控制調度程序進程以添加所述作業,你會沒事的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM