簡體   English   中英

如何構造APScheduler觸發器類以傳遞給add_job?

[英]How to construct an APScheduler trigger class to pass to add_job?

我正在使用APScheduler,並且我需要添加帶有以編程方式創建的觸發器選項列表的作業。 也就是說,我無法編寫將觸發器參數直接傳遞給add_job的代碼(例如“ second” =“ * / 5”等)。

該文檔提到您可以創建一個觸發器實例,並將其傳遞給add_job作為觸發器參數,而不是“ cron”或“ interval”等。

我想嘗試這樣做,因為似乎觸發器構造函數采用了kwargs樣式參數,並且我應該能夠將其傳遞給字典。

我還沒有找到執行此操作的示例。 我努力了:

from apscheduler.triggers import cron
# skipping irrelevant code

class Schedules(object):
    # skipping irrelevant code

    def add_schedule(self, new_schedule):
        # here I create trigger_args as {'second': '*/5'}, for example
        trigger = cron(trigger_args)

失敗並顯示:TypeError:“模塊”對象不可調用
如何實例化觸發器對象?

我找到了解決我的主要問題的解決方案,卻沒有弄清楚如何創建觸發器實例(盡管我仍然對如何做到這一點感到好奇)。

我遇到的主要問題是我需要以編程方式創建觸發器參數。 現在,我對python中的參數傳遞有了更多的了解,我發現如果我對所有參數(不僅是觸發器參數)做出指令,我可以通過這種方式傳遞參數:

job_def = {}#這里我以編程方式創建觸發器參數並將其添加到dict

job_def["func"] = job_function
job_def["trigger"] = "cron"
job_def["args"] = [3]

new_job = self.scheduler.add_job(**job_def )

暫無
暫無

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

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