[windows service]帮忙分析哪种解决方案更好?

lovebaby 2013-08-26 11:16:31
大致需求:
向用户在固定日期(比如情人节)群发短信,用户自己也可以设定日期(比如结婚纪念日),同时可以设定是否接收短信。
我写了一个windows服务,每天定时检索数据库,满足条件就发送短信。
关于具体实现细节,我想到两种,但不知哪种更好,请帮忙分析:
(1)将数据库中满足条件的用户放入缓存,每隔五分钟或十分钟检查一次缓存,如果有满足条件的用户就发送短信。这种方式,第一要在特定时间更新缓存(比如后台删除了用户,或用户更改了日期及是否接收短信等操作),第二是,由于每天向每个满足条件的用户发送一次短信即可,因此需要给用户设定的每个纪念日设定一个标识,发送完成后更改状态。但这样一来,还会涉及到一个问题,比如初始为0,发送之后为1,这个肯定会作为检索满足发短信用户的条件,如果发送之后始终为1,那么用户如果更改了日期也就不能再接收了。因此,还需要在用户对日期操作改变时更新发送短信的状态。
(2)利用windows服务的定时功能,每天只执行一次,比如每天的9点,这种方式相对上面的会省事好多,对数据库也不会产生太大压力。但这样一来,可能会产生另一个问题:比如有大量用户待发送,几千或几万,如果只执行一次,是否能够通过这一次全部发送成功,因为通过windows服务是完全自动运行的,没有人工干预。这是我目前所担心的。
...全文
81 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
threenewbee 2013-08-26
  • 打赏
  • 举报
回复
引用 5 楼 xiaojie_cp 的回复:
是的,之所以提问也是因为第二个方案我拿不准,所以请大家帮忙分析。如果第二个方案可行的话,我觉得就没有必要再去按第一种写很多代码了。
如果你因为技术问题实现(一)有困难的话,可以讨论下。如果你想“省事”,又怕省出问题来,这个是你自己的事了。
lovebaby 2013-08-26
  • 打赏
  • 举报
回复
是的,之所以提问也是因为第二个方案我拿不准,所以请大家帮忙分析。如果第二个方案可行的话,我觉得就没有必要再去按第一种写很多代码了。
threenewbee 2013-08-26
  • 打赏
  • 举报
回复
这不是省事不省事的问题,这是用户需求的问题。你省事了,做出来的东西没法用。省事有什么意义。 第二个方案明显你打算放弃精确到具体时间的提醒了,也不考虑可靠性了。
lovebaby 2013-08-26
  • 打赏
  • 举报
回复
我咨询了第三方短信平台,可以通过返回状态值判断是否接收成功。
全栈极简 2013-08-26
  • 打赏
  • 举报
回复
简单就用第2种方法,因为你无法判断对方是否接收成功。
neell 2013-08-26
  • 打赏
  • 举报
回复
原来短信广告是这么诞生的。
hellotianma 2013-08-26
  • 打赏
  • 举报
回复
首先是不管哪种都要有发送标志,将成功和失败分开标记。失败的是否要重发?最多重发几次? 其次不管哪种,采用windows定时任务或website的定时器(线程),其实是完全一样的。当然采用website就要求website不能down了。设定一个每秒的定时器,到了一个总的时间,全部发。或者到了某个用户指定 的时间再发。都可以实现的。

62,073

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧