我正在开发一个提醒类型的网站,您可以在其中设置要发送给自己的提醒,设置提醒的时间,当时间到时,您会收到一封电子邮件。
但是,提醒并不重要,大约 5-10 分钟的延迟是可以接受的。
我有两个选择:
1) 每分钟运行一个 cron 脚本。该脚本将检查数据库中是否有为 CURTIME() 安排的任何事件,(即,如果 cron 在 5:35:30 运行,它将检查在 5:35:00 设置的任何提醒)。如果没有找到,终止。如果找到,请发送电子邮件。
2) 或者,我可以每 10 分钟运行一次 Cron 脚本。此脚本将检查从现在到 10 分钟之前是否有任何提醒。例如,如果 cron 在 5:35:30 运行,它将检查 5:25:00 到 5:35:00 之间的任何提醒。如果找到,发送它们,如果没有,终止。
第二种方法的唯一问题是,如果这不会导致一些提醒无法发送出去,我不肯定。
例如,如果服务器负载较高,而计划在 5:35:00 运行的 Cron 而在 5:37:00 运行会怎样。然后可能会错过任何预定在 5:35:00 发送的电子邮件。
我应该使用哪种方法?