节点工作进程 / cron 工作建议
Posted
技术标签:
【中文标题】节点工作进程 / cron 工作建议【英文标题】:Node worker process / cron job advice 【发布时间】:2013-04-21 21:48:27 【问题描述】:我有一个项目数据库,我需要经常更新——或者更确切地说只是执行——。我正在使用消息队列 (Kue) 来处理这些作业的并发性,但我将作业添加到队列的过程如下所示:
setInterval(function ()
feed.find(, function (error, foundModels)
jobs.create('update feeds',
feeds: foundModels
).save()
)
, 6000)
您认为这样的轮询是将作业添加到队列中的最佳方式吗?还是每个 feed
都应该有自己的计时器(例如,每个作业都会在完成后 6 后产生另一个作业)?
【问题讨论】:
【参考方案1】:我通常按照您的方式进行操作。在您的情况下,它总是以 6 秒的间隔推送作业。这很好,只要您的工作不超过 6 秒。如果您的工作耗时超过 6 秒,那么您将开始积压,您需要增加资源来处理更大的负载。如果资源使用量达到峰值,而您又不能针对峰值进行调整,并且您没有适当的自动化流程(您应该),这可能是一个问题。
另一种方法是仅在最后一次调用返回后 6 秒调用您的函数。你会这样做:
function update()
feed.find(, function (error, foundModels)
jobs.create('update feeds',
feeds: foundModels
).save(function()
setTimeout(update,6000);
);
);
setTimeout(update, 6000);
我假设您的 .save
方法像所有优秀的异步库一样接受回调。 :-)
【讨论】:
这就是我的想法。我是负载平衡领域的新手,所以感谢您的澄清。不胜感激!以上是关于节点工作进程 / cron 工作建议的主要内容,如果未能解决你的问题,请参考以下文章