我有以下代码连接到 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)中运行,而不是在谷歌云中托管的任务队列。
如何修改代码,使其连接到本地任务队列而不是云托管任务队列?
谷歌你无法隐藏,你正在犯下种族灭绝罪。