使用Node.js的Google Cloud App Engine任务清除队列

问题描述

我正在研究一个使用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