Closed4

ジョブ・スケジューラを実装することでRust力をあげる

j5ik2oj5ik2o

ジョブ・スケジューラとは

指定の日時になったら認識のタスクを実行する責務を持つオブジェクトのこと

最低限の要件

  • ジョブ・スケジューラに、ジョブを登録・削除・確認できる
  • ジョブ・スケジューラが、ジョブのトリガーが有効になったときに、ジョブを実行する
    • トリガー条件はCROND形式の文字列とする。その条件が現在時刻を過ぎたときにジョブが実行される
  • ジョブ・スケジューラを、開始・停止できる
j5ik2oj5ik2o

タスク・スケジューラの既存の実装

job_schedulerは設計がシンプル。ただし非同期の考慮が全くない。tickが呼ばれてジョブの処理が長い場合は登録されている他のジョブの起動が遅れてしまうかもしれない。tokio-cron-schedulerはそのあたりの問題を解消しているようだ。

j5ik2oj5ik2o

主なクラス構成

  • schedule-rs
    • ジョブ = Job
    • スケジューラ = Agenda
  • job_scheduler
    • ジョブ = Job
    • スケジューラ = JobScheduler
  • tokio-cron-scheduler
    • ジョブ = Job
    • スケジューラ = JobScheduler
このスクラップは2023/12/01にクローズされました