检查云任务队列是不是为空
Posted
技术标签:
【中文标题】检查云任务队列是不是为空【英文标题】:Check if Cloud Task Queue is empty检查云任务队列是否为空 【发布时间】:2021-02-01 17:01:25 【问题描述】:我正在开发一个带有 Node.js 后端的项目。它有一个 Cloud Task 队列组件,可以创建数百个任务。完成所有任务后,我需要运行一些东西。我一直在翻阅 Cloud Task 队列文档并在线搜索。但是,我还没有找到任何有关如何执行此操作的文档。我只需要知道如何确定任务队列是否为空。如果添加任务后为空,则认为任务全部完成。
My Cloud Task 队列客户端的初始化如下:
const client = new CloudTasksClient()
编辑:
我想注意一些我在这里找到的文档,这些文档似乎表明它可能提供我正在寻找的东西,但我不知道如何实现它,我没有看到任何示例。 https://cloud.google.com/tasks/docs/reference/rpc/google.cloud.tasks.v2#google.cloud.tasks.v2.ListTasksResponse
【问题讨论】:
【参考方案1】:这里是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();
【讨论】:
谢谢。我看过那个文档样本。但是,它调用了一行代码(如您引用的代码中所述):const cloudtasks = google.cloudtasks('v2');
但我将其实例化为:const client = new CloudTasksClient()
那么,您如何根据该差异调整第一行代码工作?
更新答案。以上是关于检查云任务队列是不是为空的主要内容,如果未能解决你的问题,请参考以下文章