问题描述
我正在研究一个使用GCP / GAE的项目。我有一个已执行的任务队列。在某些情况下,我需要清除队列内容。我已经搜索了有关如何执行此操作的api文档,但只发现了过时的遗留文档,它们仅适用于python。我需要一个代码示例,说明如何使用Node.js按名称清除任务队列。我也没有在Stackoverflow上找到任何东西。我已经有一个CloudTasksClient()
的实例,它已经习惯了listTasks()
,并且工作正常。
客户端是否有purgeQueue(<queueName>)
的方法?有人知道该怎么做吗?
解决方法
以下是使用Node.js清除队列的方法
const {CloudTasksClient} = require('@google-cloud/tasks');
const client = new CloudTasksClient();
async function main () {
const project = "PROJECT-ID";
const region = "REGION"
const queue = "QUEUE"
const formattedName = client.queuePath(project,region,queue);
client.purgeQueue({name: formattedName})
.then(responses => {
const response = responses[0];
console.log(`Purged ${queue}`);
})
.catch(err => {
console.error(err);
});
}
main();
方法的正确语法应为purgeQueue(request)
或purgeQueue(request,callback)
,其中request是具有String属性为“ name”的对象。
尽管该示例基于旧版本,但我能够在客户端库版本2.1.0
上运行它。
其他参考:https://googleapis.dev/nodejs/tasks/1.6.1/v2beta2.CloudTasksClient.html#purgeQueue