0

プレイ中のコントローラに HTTP リクエストを送信する .net クラスがありますが、コントローラはリクエストを待機させる必要があり、しばらくするとリクエストに応答する必要があります。Promise を使用してみましたが、これを解決する方法がわかりません...

前もって感謝します

4

2 に答える 2

1

Play 1.2.xでこれを実行したい場合は、このawait関数を使用します。たとえば、リクエストを受信し、30秒間待ってから応答するには、次のようにします。

public static void delay30() {
    await("30s");
    renderText("a-response");
}

任意のrenderメソッドを使用できます。renderTextは単なる例です。

于 2012-04-20T13:28:51.073 に答える
1

待つことは一般的に最善の考えではありません。このインスタンスでおそらくやりたいことは、Schedulerによって頻繁に ping される Akka アクターを作成することです。その ping メッセージを受信すると、探している条件が存在するかどうかを確認し、そのイベントに関心を登録したすべてのアクター リファレンスに通知します。

ask パターンを介して akka アクターにメッセージを送信すると、そのメッセージの送信者は、そのバッキング アクターにメッセージが送信されると実現される Future をバッキングするアクターです。

Play 2.0 には、Akka Future を Play Promise に変換する簡単な方法があります。これで、Akka と Play を使用した非同期プログラミングが完成しました。

つまり、アクターは次の 2 つのメッセージに反応する必要があります。 RegisterListener Ping

RegisterListener は、ask パターンを使用して送信するメッセージです。アクターは、条件が満たされたときに通知できるように、そのリスナーの送信者への参照を保持する必要があります。

于 2012-04-26T09:16:41.287 に答える