Cloud Tasks在\“指定的”区域中不可用

问题描述 投票:3回答:1

我有一个在app引擎上运行的应用程序。有两个组件,一个在App引擎上执行,另一个在Compute引擎上执行。他们通过任务队列进行通信。升级到版本2后,我收到以下错误:

   {
  "code" : 400,
  "errors" : [ {
    "domain" : "global",
    "message" : "Cloud Tasks is not available in the \"us-central1-f\" region.",
    "reason" : "badRequest"
  } ],
  "message" : "Cloud Tasks is not available in the \"us-central1-f\" region.",
  "status" : "INVALID_ARGUMENT"
}
    at com.google.api.client.googleapis.json.GoogleJsonResponseException.from(GoogleJsonResponseException.java:146)
    at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:113)
    at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:40)
    at com.google.api.client.googleapis.services.AbstractGoogleClientRequest$1.interceptResponse(AbstractGoogleClientRequest.java:321)
    at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:1049)
    at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:419)
    at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:352)
    at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:469)
    at com.ytg.infra.messaging.taskqueue_api.Quickstart.pullTask(Quickstart.java:147)
    at com.ytg.infra.messaging.taskqueue_api.Quickstart.main(Quickstart.java:119)

注意:我已经通过了适当的论点。

java task-queue google-apis-explorer
1个回答
0
投票

经过一些研究,我能够自己解决这个问题,下面我提供了解决方案。

String queueNames = String.format("projects/%s/locations/%s/queues/%s", _projectName,_location, queueName);

              // Create the PullTasksRequest
              LeaseTasksRequest request = new LeaseTasksRequest().setMaxTasks(tasksBulkSize).setLeaseDuration(String.valueOf(leaseTimeInSecs)+"s").setResponseView("FULL");

              //Execute the request and return the pulled task
              LeaseTasksResponse response = _cloudTasksClient
                  .projects()
                  .locations()
                  .queues()
                  .tasks()
                  .lease(queueNames, request)
                  .execute();
              return response.getTasks();

这解决了我的问题。对不起,迟到的帖子。

© www.soinside.com 2019 - 2024. All rights reserved.