javascript - Meteor 中的后台任务

标签 javascript meteor npm

我想知道,是否有办法实现后台任务,也许可以使用工作池。你能告诉我方向吗,我正在考虑为此编写程序包?

最佳答案

2019年更新

在考虑为任何东西写一个包之前,首先看看是否有现有的包可以满足您的需要。在 Meteor 世界中,这意味着在 Atmosphere 上寻找“工作/队列/任务/ worker 管理/调度”包,然后在 npm 上寻找相同的搜索词。您还需要更准确地定义您的要求:

  • 您想要持久性,还是内存解决方案可行?
  • 您希望能够将作业分配到不同的机器吗?

meteor 特有

  • job-collection - 可靠(我在 2014 年的一家初创公司的生产中使用过它),但目前处于维护模式。允许您安排持久作业在任何地方(服务器、客户端)运行。
  • SteveJobs - 由 Max Savin 积极维护,他是几个 powerful Meteor tools 的作者
  • littledata:synced-cron - “一个简单的 Meteor cron 系统。它支持在多个进程之间同步作业。”

废弃的包裹:

Npm 包

Meteor 已经能够直接使用 npm 包好几年了,所以这个问题相当于寻找 job/worker/queue management packages在 NPM 上。如果您不关心持久性:

  • Async “提供了大约 70 个函数,其中包括常见的‘功能性’嫌疑对象(mapreducefiltereach。 ..) 以及异步控制流的一些常见模式(parallelserieswaterfall...)”
  • d3-queue - 简约,由 D3 作者 Mike Bostock 编写

如果您确实需要持久性,因为 Meteor 已经使用 MongoDB,使用具有持久性的作业调度包到 MongoDb 可能是有利的。最强大和最受欢迎的似乎是Agenda , 但不幸的是它已经几个月没有维护了,它有大量的积压 issues .

如果您愿意添加由 redis 支持的依赖项给你的项目,有更多的选择:

和MongoDB一样,Redis也可以提供高可用性(通过Redis Sentinel),如果你想在多台worker机器之间分配作业,你可以point them all at the same Redis server .

关于javascript - Meteor 中的后台任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11703010/

相关文章:

javascript - npm 列表永远不会为空

javascript - 如果 package-lock.json 锁定它,在 package.json 中声明 "compatible version"(^version) 有什么意义?

javascript - Gmail 的 html 电子邮件中表格的内联样式并使用 PHPMailer 发送

Javascript 对象与函数

javascript - 如何在javascript函数中执行python代码(.py文件)?

javascript - mongodb 聚合 $sort by field value closest to some value

javascript - 如何让 Email.send 在未来(7 天、14 天等)发送电子邮件

node.js - npm install -g 再次下载所有依赖项

javascript - 使用 Javascript 创建动态输入 id

javascript - Meteor - 加载/刷新页面时出错 : Exception from Tracker afterFlush function: undefined