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

如何使用Java连接到本地Google Cloud Taskqueue?,java,google-app-engine,google-cloud-platform,Java,Google App Engine,Google Cloud Platform,我有以下代码连接到Google Cloud Taskqueue并租用一些任务: List<String> scopes=new ArrayList<String>(); scopes.addAll(DatastoreOptions.SCOPES); scopes.add(STORAGE_SCOPE); scopes.add(TaskqueueScopes.TASKQUEUE); Credential credential = ne

我有以下代码连接到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计算引擎实例中运行,并将执行一些后台处理任务

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

这段代码工作得很好,它连接到了运行在谷歌云中的Taskqueue。Taskqueue是pull queue,在我的另一个应用程序GAE web应用程序中配置,该应用程序正在创建任务并将它们存储到队列中

现在我想在本地调试代码,因此我需要将代码连接到本地Taskqueue,运行在本地调试服务器localhost:8888中,而不是在google云中托管的Taskqueue


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

这对您有帮助吗?嗯,没有。它可用于测试taskqueue是否存在并工作,但为此需要重写我的代码,这不是我想要的。如果SystemProperty.environment.value==SystemProperty.environment.value.Production{//do something}其他{//do something}对您有用吗?我用它来解决生产和本地图像API之间的差异