流星的背景任务

Leo*_*aev 58 javascript npm meteor

我想知道,是否有办法实施背景技术,也许有工人池.你能告诉我方向吗,我正在考虑为此编写包装?

Dan*_*scu 108

2019年更新

在考虑为任何东西编写包之前,首先看一下现有的包是否能满足您的需求.在Meteor世界中,这意味着在Atmosphere上查找"作业/队列/任务/工作人员管理/日程安排"软件包,然后在npm上查找相同的搜索条件.您还需要更精确地定义您的要求:

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

流星专用

  • 工作收集 - 可靠(我在2014年在初创公司的生产中使用它),但目前处于维护模式.允许您安排在任何地方运行的持久性作业(服务器,客户端).
  • SteveJobs - 由几个强大的Meteor工具的作者Max Savin积极维护
  • littledata:synced-cron - "Meteor的一个简单的cron系统.它支持在多个进程之间同步作业."

被遗弃的包裹:

Npm包

Meteor已经能够直接使用npm包几年了,所以这个问题相当于在NPM上找到作业/工作人员/队列管理包.如果你不关心持久性:

  • 异步 "提供围绕70功能,包括通常的'功能性’嫌疑人(map,reduce,filter,each...)以及为异步控制流一些常见的模式(parallel,series,waterfall...)"
  • d3-queue - minimalistic,由D3作家Mike Bostock编写

如果你确实需要持久性,因为Meteor已经使用了MongoDB,所以使用具有持久性的作业调度包对MongoDb可能是有利的.最强大和最受欢迎的似乎是议程,但不幸的是它几个月没有得到维护,并且它有大量积压的问题.

如果您愿意将redis支持的依赖项添加到项目中,还有更多选择:

与MongoDB一样,Redis也可以提供高可用性(通过Redis Sentinel),如果要在多个工作机器之间分配作业,可以将它们全部指向同一台Redis服务器.

  • 这个包接缝有趣:https://atmospherejs.com/differential/workers我还没试过但是我想提一下它来增加选项列表 (2认同)