如何 schedule/queue 基于保存的 mongodb 文档数据 [NodeJS] 的任务
How to schedule/queue a task based on saved mongodb document data [NodeJS]
我想在我的服务器中有一个功能,用户可以从 API 路由创建 'jobScan' 例如 '/create-scan-job 基本上是在创建 scanJob它将与 'scanDueDate' 一起保存在 mongodb 数据库中,该数据库将用于排队任务,该任务将在用户输入的到期日期将扫描状态更改为 'completed' .
我怎样才能构建这样的东西?我在将数据保存在数据库中没有问题,但我如何 'queue' 它在作为输入给出的 dueDate 上触发?
- Agenda 在 MongoDB 数据库中保存工作
- Bull 在 Redis 中保存工作。
两者都支持 cron 作业。
Agenda 使用 MongoDB 进行队列调度,但它有点不稳定,as you may see on the issues page. And you may also use Bree,但它确实在内存中存储作业队列。
至于Bull or BullMQ, that have been notified here, truly it does use Redis, as queue storage. But its docs descriptions don't seem full. And as I remember, Redis doesn't support Windows out-of-the-box. So if you want to run it locally, I highly recommend you use the Redis Docker image。
此外,不要忘记用于任务队列的 GUI。您可以使用:
- Agendash,(带有 Agenda)允许从界面手动创建作业。
- Bull-board(使用 Bull 或 BullMQ),仅提供有关任务的只读数据。
我想在我的服务器中有一个功能,用户可以从 API 路由创建 'jobScan' 例如 '/create-scan-job 基本上是在创建 scanJob它将与 'scanDueDate' 一起保存在 mongodb 数据库中,该数据库将用于排队任务,该任务将在用户输入的到期日期将扫描状态更改为 'completed' .
我怎样才能构建这样的东西?我在将数据保存在数据库中没有问题,但我如何 'queue' 它在作为输入给出的 dueDate 上触发?
- Agenda 在 MongoDB 数据库中保存工作
- Bull 在 Redis 中保存工作。
两者都支持 cron 作业。
Agenda 使用 MongoDB 进行队列调度,但它有点不稳定,as you may see on the issues page. And you may also use Bree,但它确实在内存中存储作业队列。
至于Bull or BullMQ, that have been notified here, truly it does use Redis, as queue storage. But its docs descriptions don't seem full. And as I remember, Redis doesn't support Windows out-of-the-box. So if you want to run it locally, I highly recommend you use the Redis Docker image。
此外,不要忘记用于任务队列的 GUI。您可以使用:
- Agendash,(带有 Agenda)允许从界面手动创建作业。
- Bull-board(使用 Bull 或 BullMQ),仅提供有关任务的只读数据。