2017-08-06 2 views
0

私はAPSchedulerを使用しており、プログラムで作成されたトリガオプションのリストを持つジョブを追加する必要があります。つまり、私はadd_jobに直接トリガパラメータを渡すコードを書くことはできません( "second" = "*/5"など)。私のように、それを行うために試してみたいadd_jobに渡すAPSchedulerトリガークラスを構築するには?

ドキュメントではなく、「クーロン」または「間隔」の、あなたはトリガのインスタンスを作成し、トリガーパラメータとしてadd_jobすることを渡すことができることに言及など

トリガコンストラクタが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:「モジュール」オブジェクト呼び出すことはできません
私はトリガーオブジェクトをインスタンス化するにはどうすればよいですか?

答えて

0

私はトリガーインスタンスを作成する方法を考え出すことなく、私の主な問題の解決策を見つけました(それについてはまだ興味がありますが)。

主な問題は、プログラムでトリガパラメータを作成する必要があることです。 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) 
関連する問題