Search in sources :

Example 1 with AppEngineHttpRequest

use of com.google.cloud.tasks.v2.AppEngineHttpRequest in project workbench by all-of-us.

the class ForwardingCloudTasksStub method createTaskCallable.

@Override
public UnaryCallable<CreateTaskRequest, Task> createTaskCallable() {
    return new UnaryCallable<CreateTaskRequest, Task>() {

        @Override
        public ApiFuture<Task> futureCall(CreateTaskRequest request, ApiCallContext context) {
            final QueueName queueName = QueueName.parse(request.getParent());
            final AppEngineHttpRequest gaeReq = request.getTask().getAppEngineHttpRequest();
            final Request apiReq = new Request.Builder().url(baseUrl + gaeReq.getRelativeUri()).headers(Headers.of(gaeReq.getHeadersMap())).addHeader("X-AppEngine-QueueName", queueName.getQueue()).post(RequestBody.create(MediaType.parse("application/json; charset=utf-8"), gaeReq.getBody().toStringUtf8())).build();
            log.info(String.format("asynchronously forwarding task request for queue '%s', to handler '%s'", queueName.getQueue(), apiReq.url()));
            OkHttpClient client = new OkHttpClient();
            client.setReadTimeout(10, TimeUnit.MINUTES);
            client.newCall(apiReq).enqueue(new Callback() {

                @Override
                public void onFailure(Request request, IOException e) {
                    log.log(Level.SEVERE, "task execution failed", e);
                }

                @Override
                public void onResponse(Response response) {
                }
            });
            return ApiFutures.immediateFuture(request.getTask());
        }
    };
}
Also used : Task(com.google.cloud.tasks.v2.Task) OkHttpClient(com.squareup.okhttp.OkHttpClient) UnaryCallable(com.google.api.gax.rpc.UnaryCallable) CreateTaskRequest(com.google.cloud.tasks.v2.CreateTaskRequest) AppEngineHttpRequest(com.google.cloud.tasks.v2.AppEngineHttpRequest) Request(com.squareup.okhttp.Request) ApiCallContext(com.google.api.gax.rpc.ApiCallContext) IOException(java.io.IOException) AppEngineHttpRequest(com.google.cloud.tasks.v2.AppEngineHttpRequest) Response(com.squareup.okhttp.Response) Callback(com.squareup.okhttp.Callback) CreateTaskRequest(com.google.cloud.tasks.v2.CreateTaskRequest) QueueName(com.google.cloud.tasks.v2.QueueName)

Aggregations

ApiCallContext (com.google.api.gax.rpc.ApiCallContext)1 UnaryCallable (com.google.api.gax.rpc.UnaryCallable)1 AppEngineHttpRequest (com.google.cloud.tasks.v2.AppEngineHttpRequest)1 CreateTaskRequest (com.google.cloud.tasks.v2.CreateTaskRequest)1 QueueName (com.google.cloud.tasks.v2.QueueName)1 Task (com.google.cloud.tasks.v2.Task)1 Callback (com.squareup.okhttp.Callback)1 OkHttpClient (com.squareup.okhttp.OkHttpClient)1 Request (com.squareup.okhttp.Request)1 Response (com.squareup.okhttp.Response)1 IOException (java.io.IOException)1