节点计划的对象处理和日历架构

时间:2018-07-02 18:28:25

标签: node.js express

我的目标是建立一个日历,在其中可以添加事件,并在事件日期到达时执行代码。

 My plan was using: 
     Mysql database +
     node-schedule (https://github.com/node-schedule/node-schedule) +
     express.js +
     fullcallendar (https://fullcalendar.io/)

每次用户在日历上添加一个事件时,该事件都会保存到数据库mysql中,然后创建一个对象(使用节点计划)以在用户输入之日执行。

如果服务器崩溃或需要重新启动,则会有一个循环,该循环将读取表的所有日期并创建要执行的对象数组。

这在内存和逻辑上都经过适当设计吗?

如果用户有100万个日期要执行,那么服务器内存中将有100万个对象,我不知道这种方式是否正确。

1 个答案:

答案 0 :(得分:0)

  1. 您可能希望按日期对事件进行分页,例如您不需要为每个请求加载所有用户事件,而只需加载适合整个日历视图的事件即可,例如一个月左右。

  2. 当用户更改完整日历上的日期时,您只需将ajax请求发送到服务器以获取新数据即可。

这将大大提高内存效率,因为您将(几乎)在内存中永远不会有100万个事件/对象,而只有相关的事件/对象。