在我正在开发的Node应用程序中,用户可以预约预约。当预约被预定时,用户将在实际约会前的X小时内通过邮件收到提醒。
我在考虑在这个任务中使用节点计划。
对于每个约会:设置一个未来的日期,发送提醒邮件一次,并删除这个特定的计划作业。
但是..。当应用程序增长时,可能会有很多预约,这意味着会有很多节点调度过程同时休眠和等待触发.
在一个固定的日子里,让我们假装我们已经为每个客户预定了180个约会,并且假装这个应用程序现在有50个客户。这给了我们大约9000项预定任务--睡觉和等待开火。
问题:,这完全可以吗?.还是所有这些同时安排的任务都会太多/很多?
发布于 2013-09-18 13:02:32
简短的回答: 9000不是很多,你可以去。不过,我建议您编写一个基准,以便自己查看。
我检查了节点调度的源代码,确定它将基于日期的任务的调度委托给setTimeout。这意味着您的作业是使用node.js内部事件循环调度的。
这段代码非常高效,因为node.js是为同时处理数千个请求量身定做的。
不管挂起的作业有多少,node.js只关心下一个任务,并一直睡到它的日期(除非异步I/O打断它),所以调度任务本质上是O(1)。
https://stackoverflow.com/questions/18869050
复制相似问题