Skip to content

Instantly share code, notes, and snippets.

@brikis98
Created July 6, 2011 01:18
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save brikis98/1066324 to your computer and use it in GitHub Desktop.
Save brikis98/1066324 to your computer and use it in GitHub Desktop.
Play framework async I/O with callbacks
public class AsyncTest extends Controller
{
public static void callback()
{
F.Promise<WS.HttpResponse> remoteCall1 = WS.url("http://www.remote-service.com/data/1").getAsync();
F.Promise<WS.HttpResponse> remoteCall2 = WS.url("http://www.remote-service.com/data/2").getAsync();
F.Promise<WS.HttpResponse> remoteCall3 = WS.url("http://www.remote-service.com/data/3").getAsync();
F.Promise<List<WS.HttpResponse>> promises = F.Promise.waitAll(remoteCall1, remoteCall2, remoteCall3);
await(promises, new F.Action<List<WS.HttpResponse>>() // request gets suspended here
{
public void invoke(List<WS.HttpResponse> httpResponses)
{
render(httpResponses);
}
});
}
}
@brikis98
Copy link
Author

brikis98 commented Aug 9, 2011

See Play framework and async I/O for more information.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment