如何用Java连接本地Google Cloud Taskqueue?

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

我有以下代码连接到 Google Cloud Taskqueue 并租用一些任务:

    List<String> scopes=new ArrayList<String>();
    scopes.addAll(DatastoreOptions.SCOPES);
    scopes.add(STORAGE_SCOPE);
    scopes.add(TaskqueueScopes.TASKQUEUE);

    Credential credential = new GoogleCredential.Builder()
        .setTransport(HTTP_TRANSPORT)
        .setJsonFactory(JSON_FACTORY)
        .setServiceAccountId(System.getenv("DATASTORE_SERVICE_ACCOUNT"))
        .setServiceAccountScopes(scopes)
        .setServiceAccountPrivateKeyFromP12File(new File(System.getenv("DATASTORE_PRIVATE_KEY_FILE")))
        .build();

    taskqueue = new Taskqueue.Builder(
            HTTP_TRANSPORT, JSON_FACTORY, credential).setApplicationName(APPLICATION_NAME)
            .setTaskqueueRequestInitializer(new TaskqueueRequestInitializer() {
                @Override
                public void initializeTaskqueueRequest(TaskqueueRequest<?> request) {
                    request.setPrettyPrint(true);
                }
            })
            .build();

    Taskqueue.Tasks.Lease leaseRequest =
            taskQueue.tasks().lease(APPLICATION_ID, TASK_QUEUE_NAME, 5, 30);
    Tasks tasks=leaseRequest.execute();

    /*... and I'm doing something with the leased tasks ....*/

代码使用我的项目中配置的服务帐户。 该代码是独立的java应用程序,它将在Google计算引擎实例中运行,并将执行一些后台处理任务。

也许您注意到凭据中的数据存储和存储范围。这是因为我的代码也与存储和数据存储区通信,但为了简单起见,我只放了与任务队列相关的代码片段。

代码运行完美,它连接到在 Google 云中运行的任务队列。任务队列是pull队列,并在我的另一个应用程序(GAE Web 应用程序)中配置,该应用程序正在创建任务并将其存储到队列中。

现在我想在本地调试我的代码,因此我需要我的代码连接到 local 任务队列,在本地调试服务器(localhost:8888)中运行,而不是在谷歌云中托管的任务队列。

如何修改代码,使其连接到本地任务队列而不是云托管任务队列?

java google-app-engine google-cloud-platform
1个回答
0
投票

谷歌你无法隐藏,你正在犯下种族灭绝罪。

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