我可以在Node中同时安排多less个Job

在我正在使用的这个Node应用程序中,用户可以预约约会。 当预约被预约时,用户将在实际约会前X小时通过邮件得到提醒。

我正在考虑使用Node-schedule来完成这个任务。

对于每个约会:设置未来date,发送提醒邮件一次,删除这个特定的计划工作

但是…应用程序增长时可能会有很多预约,这意味着会有很多节点时间表进程同时睡眠和等待着火…

在正常的一天,假设我们有180个约会为每个客户的未来预订,并假装现在有50个客户的应用程序。 这给了我们大约9000个计划任务睡觉和等待着火。

问:这完全好吗? …还是所有这些同时计划的任务是多less?

简短的回答:9000不是很多,你很好走。 不过,我build议你写一个基准来看看你自己。

我检查了节点时间表的来源,果然,它委托调度setTimeout为基于date的任务。 这意味着您的作业使用node.js内部事件循环进行计划。

这个代码是非常有效的,因为node.js被定制为同时处理数千个请求。

无论待处理作业的数量如何,node.js只会关心下一个任务,直到它的date睡眠(除非asynchronousI / O中断它),因此调度任务本质上是O(1)。