問題

私はサーバー側の視点からダーツを見ています。

特定の時間またはX時間でアイソレートを実行できるスケジューラはありますか?私はJavaの世界でQuartzの行を考えています。

  ベストアンサー

Dartには遅延して繰り返すタスクのためのいくつかのオプションがありますが、私はQuartzからDartへのポートを認識していません(まだ... :)

ここに基本があります:

  • Timer - 何らかの遅延の後に単純に関数を実行する
  • Future - より堅牢で合成可能な関数 "将来"の値を返す関数
  • Stream - 堅牢で合成可能なイベントのストリーム。定期的にすることができます。

繰り返しタスクがある場合は、 Stream over Timer を使用することをお勧めします。タイマーにはエラー処理が組み込まれていないため、 uncuff 例外はプログラム全体をダウンさせることができます(Dartにはグローバルエラーハンドラはありません)。

定期的な結果を生成するためにストリームを使用する方法は次のとおりです。

 import 'dart:async';

main() {
  var stream = new Stream.periodic(const Duration(hours: 1), (count) {
    // do something every hour
    // return the result of that something
  });

  stream.listen((result) {
    // listen for the result of the hourly task
  });
}
 

あなたは特に隔離について尋ねます。プログラムの開始時に分離を生成し、1時間ごとにメッセージを送信することができます。または、プログラムの開始時に分離を生成することができ、分離自体は独自のタイマーまたは定期的なストリームを実行できます。

  同じタグがついた質問を見る

dartscheduler