プレイ中のコントローラに HTTP リクエストを送信する .net クラスがありますが、コントローラはリクエストを待機させる必要があり、しばらくするとリクエストに応答する必要があります。Promise を使用してみましたが、これを解決する方法がわかりません...
前もって感謝します
プレイ中のコントローラに HTTP リクエストを送信する .net クラスがありますが、コントローラはリクエストを待機させる必要があり、しばらくするとリクエストに応答する必要があります。Promise を使用してみましたが、これを解決する方法がわかりません...
前もって感謝します
Play 1.2.xでこれを実行したい場合は、このawait
関数を使用します。たとえば、リクエストを受信し、30秒間待ってから応答するには、次のようにします。
public static void delay30() {
await("30s");
renderText("a-response");
}
任意のrenderメソッドを使用できます。renderTextは単なる例です。
待つことは一般的に最善の考えではありません。このインスタンスでおそらくやりたいことは、Schedulerによって頻繁に ping される Akka アクターを作成することです。その ping メッセージを受信すると、探している条件が存在するかどうかを確認し、そのイベントに関心を登録したすべてのアクター リファレンスに通知します。
ask パターンを介して akka アクターにメッセージを送信すると、そのメッセージの送信者は、そのバッキング アクターにメッセージが送信されると実現される Future をバッキングするアクターです。
Play 2.0 には、Akka Future を Play Promise に変換する簡単な方法があります。これで、Akka と Play を使用した非同期プログラミングが完成しました。
つまり、アクターは次の 2 つのメッセージに反応する必要があります。 RegisterListener Ping
RegisterListener は、ask パターンを使用して送信するメッセージです。アクターは、条件が満たされたときに通知できるように、そのリスナーの送信者への参照を保持する必要があります。