如何使用Java连接到本地Google Cloud Taskqueue?
我有以下代码连接到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
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之间的差异