2016-10-27 6 views
1

現在のメッセージが処理されるのを待たずに俳優を止めることができるのか、それともただ取り消すことができるのだろうかと思っていました。Akka.netどのようにして現在のメッセージが終了するのを待たずに俳優を止めるのですか?

はここで

https://petabridge.com/blog/how-to-stop-an-actor-akkadotnet/

を行う方法を説明します。しかし、現在のメッセージを処理するために、それらはすべて待ちます。

ストップ()俳優:

は、それが現在のメッセージを処理する を終了した直後に俳優を停止します。

俳優を殺す:

これは記録され、処理されますActorKilledExceptionをスローします。俳優は現在のメッセージの処理が終了した直後に を停止します。

俳優PoisonPill送る:俳優は現在、そのメールボックスに のメッセージの処理を完了した後、停止します

を。

答えて

3

私はアクターメッセージの中に長時間実行されているプロセスがあるのか​​と疑問に思います。しばらく時間がかかる可能性があり、メッセージの受信内でタスクに取り消すことができるようにするコードを配置する方がよいでしょう。

これで、アクターは解放され、上でリストした停止方法の1つからメッセージを受け入れ、それに応じてタスクを終了できます。

はまた、次ページのポイント4は、素敵な先端厥いくつかのサンプルコードhttps://petabridge.com/blog/top-7-akkadotnet-stumbling-blocks/

+0

を示し、私は仕事でそれをカプセル化すると思ったが、CancellationToken :)おかげでうまく動作しませんでした! –

関連する問題