首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过CRON每分钟发送电子邮件-我的方法还能改进吗?

通过CRON每分钟发送电子邮件-我的方法还能改进吗?
EN

Stack Overflow用户
提问于 2012-09-16 08:59:36
回答 2查看 1.3K关注 0票数 1

我在一个提醒类型的网站上工作,在那里你可以设置提醒发送给你自己,设置提醒的时间,当时间发生时,你会收到一封电子邮件。

然而,提醒并不重要,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的任何电子邮件都可能被错过。

我应该使用哪种方法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-16 10:05:51

它们是相同的选项,只是周期不同。

您可能认为这是间隔轮询或队列扫描,但它是“非实时的”,因此您必须针对延迟进行设计。

通常,每个扫描都应该假设它可能已经被延迟,而且系统应该有一些定义的策略来处理“太旧”的排队通知。(如果系统关机一小时后才能清理新入队的通知,该怎么办?)

为了健壮性,请确保队列处理是原子的或同步的-无论是来自并发扫描还是后续扫描,都不会重复处理项目。

票数 1
EN

Stack Overflow用户

发布于 2012-09-16 10:05:44

在Windows和Unix机器上,有at,它用于在指定的时间安排一次性作业。除非你发送的电子邮件太多,所以每分钟检查/发送一次会更有意义,否则让“保存我的提醒”代码通过at作业调度发送可能会更容易一些。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12443645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档