检查 Cloud Task Queue 是否为空

Check if Cloud Task Queue is empty

我正在开发一个带有 Node.js 后端的项目。它有一个 Cloud Task 队列组件,可以创建数百个任务。所有任务完成后,我需要 运行 做点什么。我一直在研究 Cloud Task 队列文档并在线搜索。但是,我还没有找到任何关于如何执行此操作的文档。我只需要知道如何确定任务队列是否为空。如果添加任务后为空,则认为任务全部完成。

我的 Cloud Task 队列客户端初始化如下: const client = new CloudTasksClient()

编辑:

我想指出我在这里找到的一些文档,这些文档似乎表明它可能提供我正在寻找的东西,但我不知道如何实现它,我没有看到任何示例。 https://cloud.google.com/tasks/docs/reference/rpc/google.cloud.tasks.v2#google.cloud.tasks.v2.ListTasksResponse

这里是 official documentation 如何列出队列中的任务。请注意,此示例使用应用程序默认凭据进行身份验证,因此您需要在 gcloud CLI 上登录。

还有一个reference。此示例是关于列出队列的,但它也适用于使用 client.listTasks().

列出任务

我测试了这段代码,它起作用了:

const {CloudTasksClient} = require('@google-cloud/tasks');
const client = new CloudTasksClient();

async function main () {
  const request = {
    parent: 'projects/PROJECT-ID/locations/REGION/queues/QUEUE-NAME', 
  };

  const [tasklist] = await client.listTasks(request);

  if (tasklist.length > 0) {
    console.log('Tasks:');
    tasklist.forEach(tasklist => {
      console.log(`  ${tasklist.name}`);
    });
  } else {
    console.log('No tasks found on queue!');
  }
}
main();