检查云任务队列是否为空



我正在处理一个带有Node.js后端的项目。它有一个云任务队列组件,可以创建数百个任务。我需要在所有任务完成后运行一些东西。我一直在浏览云任务队列文档并在线搜索。然而,我还没有找到任何关于如何做到这一点的文档。我只需要知道如何确定任务队列是否为空。如果添加任务后它为空,则认为任务已全部完成。

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

编辑:

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

以下是关于如何在队列中列出任务的官方文档。请注意,此示例使用应用程序默认凭据进行身份验证,因此您需要登录到gcloud CLI。

还有另一个参考。此示例是关于列出队列的,但也适用于使用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();

最新更新