我应该只有一个循环用户的cron作业,还是每个用户一个?

时间:2017-12-07 作者:Johansson

我正在开发一个只有注册用户才能访问的网站,并且他们是手动添加到该网站的,因为没有启用注册。把它想象成一家私人商店。用户数低于1000。

每个用户都可以设置几个事件,例如生日。他们通常加不到10。

我想通过电子邮件通知用户他们的活动,何时还有几天时间到达该活动。

现在的问题是,从性能角度来看,每天00:00运行一个cron作业并循环检查所有用户并检查他们的事件(存储为元数据)更好吗,还是应该为每个用户的每个事件设置一个年度cron作业(最终有上千个cron作业)?

1 个回复
最合适的回答,由SO网友:janh 整理而成

运行一个cron,它更易于管理,更稳定,性能也不应该成为问题,因为在MySQL中选择应该通知哪个用户的工作要做99%,这将非常快。

我会使用一个表来保存cron成功运行的每一天(以及当天的每个用户),以使其更有弹性。计划失败,而不是成功,因为它will 在某个时刻失败,重要的是失败会有多严重,以及修复后果需要多长时间。

服务器在午夜前崩溃,并在00:05重新启动?没问题,只需手动运行作业,或者等到第二天,它将在一次运行中运行两天!

执行cron时服务器崩溃?不用担心,下次运行时,它会在上次停止的地方恢复。

结束