node.js - 检查云任务队列是否为空
问题描述
我正在开发一个带有 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
解决方案
这是有关如何在队列中列出任务的官方文档。请注意,此示例使用应用程序默认凭据进行身份验证,因此您需要在 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();
推荐阅读
- matlab - 为什么当我多次训练一个网络模型时,我得到不同的训练模型和不同的结果?
- javascript - 按最小对象值区分对象数组
- java - 自动将主键从身份(int)转换为字符串
- angular - 单击按钮时将值设置为文本区域
- javascript - 模态关闭并更新数据,但屏幕显示为暗
- c++ - 将 mwArray 转换为 std::vector
- javascript - 使用布尔标志来整理我的功能
- java - 返回值 尝试捕捉?
- android - 对 AWS AppSync 查询的响应没有任何数据。(在 Android 应用中使用 Amplify)
- kotlin - Kotlin 协程“发生在之前”的保证?