1

カウンター「numberOrders」があり、毎日真夜中にリセットして、1日に何件の注文があるかを知りたいのですが、今私が持っているのはこれです:

val system = akka.actor.ActorSystem("system")
system.scheduler.schedule(86400000 milliseconds, 0 milliseconds){(numberOrders = 0)}

このコードは、新しい注文を取得するたびに呼び出される定義内にあるため、最初の注文またはすべての注文から 24 時間後に numberOrders をリセットします。毎回新しい注文があるかどうかはわかりません注文は 24 時間後にリセットされますが、これは私が望んでいるものではありません。毎日真夜中に変数を休ませたいのですが、何か考えはありますか? ありがとう!

4

2 に答える 2

1

スケジュールは繰り返し実行をサポートしているため、間隔パラメーターを 24 時間に設定し、初期遅延を現在から午前 0 時までの時間に設定し、起動時にコードを開始することができます。現在、注文を受けるたびに新しいactorSystemを作成しているようですが、それは正しくないようで、それも削除します。

また、代わりにアクターにメッセージを送信するスケジュール メソッドを使用することをお勧めします。このようにして、注文を処理するアクターはカウントを維持でき、ResetCounter メッセージを受信すると、単にカウンターをリセットします。あなたは単に書くことができます:

 system.scheduler.schedule(x seconds, 24 hours, orderActor, ResetCounterMessage)

最初にアクター システムを起動し、それで完了したとき。

于 2013-11-05T10:43:58.047 に答える