2017-07-30 29 views
1

私は、APSchedulerが私のプロジェクトのニーズのためのツールであるかどうかを判断しようとしています。APSchedulerのget_jobsから返されたジョブのリストを解釈するには?

ジョブを追加できます。

ジョブのリストを取得できますが、結果の解釈に問題があります。私は自分のプログラムがこの返されたジョブリストをプログラムの他の部分で必要なフォーマットに翻訳してもらいたい。私はトリガパラメータを抽出する必要があります。

私がcronトリガーを使用しているとします。私は今のシンプルなものにするだろう:私は仕事を得るし、それが「分」のためにスケジュールされていること、これはcronのトリガーであること(基本的な情報を抽出したい、その後

new_job = self.scheduler.add_job(jobfunc,'cron', minute='*/5', args=["minute"] 

を= */5) - 基本的に私はトリガーを作成したパラメーターを再構成したい。

私はデバッガで返されたジョブを調べましたが、各ジョブに必要な情報が含まれている "トリガ"メンバーがあることがわかりましたが、プログラムにアクセスする方法がわかりません。スケジュールに追加要素のようなものになります

jobs=self.scheduler.get_jobs() 
    schedules=[] 
    for job in jobs: 
    schedules.append(<do something with job.trigger.fields>) 

:私はこのような何かやりたい

{'minute':'*/5'} 

ドキュメントは言う:

取得するにはスケジュールされたジョブのマシン処理可能なリストは、get_jobs()

問題は、私の「マシン」はこのリストをどのように処理すべきですか?

答えて

0

これまでのAPScheduler Googleグループの質問のおかげで、私は解決策を得ました。

詳細は、私が考えたように、フィールドを介してアクセスする必要があります。個々のフィールドから情報を取得するためのキーは、フィールド値を文字列に変換することです。ここで

は作品例です。

[{'week': '*', 'hour': '*', 'day_of_week': '*', 'month': '*', 'second': '*/5', 'year': '*', 'day': '*', 'minute': '*'}] 
0

APScheduler:結果のリストは次のように出てくる

new_job = self.scheduler.add_job(jobfunc,'cron', second='*/5', args=["second"]) 

:ようつのジョブとスケジュールの

schedules = [] 
for job in self.scheduler.get_jobs(): 
    jobdict = {} 
    for f in job.trigger.fields: 
     curval = str(f) 
     jobdict[f.name] = curval 

    schedules.append(jobdict) 

を追加しました.get_jobs()メソッドは、ジョブインスタンスのリストを返します。

たとえば、次のようなもので、すべての現在スケジュールされたジョブについての情報を印刷することができます。そのジョブ名が異なるジョブ間で繰り返すことができます

for job in scheduler.get_jobs(): 
    print("name: %s, trigger: %s, next run: %s, handler: %s" % (
      job.name, job.trigger, job.next_run_time, job.func)) 

注意を。

ここにはAPI reference for the job classがあります。ジョブ・クラス・メンバーを明示的にリストしませんが、変数はkwargsに一致します。

関連する問題