12.5. スケジューリングが遅延しているワーク
AMQ C++ には、遅延後にコードを実行する機能があります。これを使用して、定期的にスケジュールした作業やタイムアウトなど、アプリケーションに時間ベースの動作を実装できます。
一定の期間を遅らせるには、schedule
メソッドを使用して遅延を設定し、作業を定義する関数を登録します。
例: 遅延後のメッセージの送信
void on_sender_open(proton::sender& snd) override {
proton::duration interval {5 * proton::duration::SECOND};
snd.work_queue().schedule(interval, [=] { send(snd); });
}
void send(proton::sender snd) {
if (snd.credit() > 0) {
proton::message msg {"hello"};
snd.send(msg);
}
}
この例では、送信者の作業キューで schedule
メソッドを使用して、作業の実行コンテキストとして確立します。