大致需求:
向用户在固定日期(比如情人节)群发短信,用户自己也可以设定日期(比如结婚纪念日),同时可以设定是否接收短信。
我写了一个windows服务,每天定时检索数据库,满足条件就发送短信。
关于具体实现细节,我想到两种,但不知哪种更好,请帮忙分析:
(1)将数据库中满足条件的用户放入缓存,每隔五分钟或十分钟检查一次缓存,如果有满足条件的用户就发送短信。这种方式,第一要在特定时间更新缓存(比如后台删除了用户,或用户更改了日期及是否接收短信等操作),第二是,由于每天向每个满足条件的用户发送一次短信即可,因此需要给用户设定的每个纪念日设定一个标识,发送完成后更改状态。但这样一来,还会涉及到一个问题,比如初始为0,发送之后为1,这个肯定会作为检索满足发短信用户的条件,如果发送之后始终为1,那么用户如果更改了日期也就不能再接收了。因此,还需要在用户对日期操作改变时更新发送短信的状态。
(2)利用windows服务的定时功能,每天只执行一次,比如每天的9点,这种方式相对上面的会省事好多,对数据库也不会产生太大压力。但这样一来,可能会产生另一个问题:比如有大量用户待发送,几千或几万,如果只执行一次,是否能够通过这一次全部发送成功,因为通过windows服务是完全自动运行的,没有人工干预。这是我目前所担心的。
向用户在固定日期(比如情人节)群发短信,用户自己也可以设定日期(比如结婚纪念日),同时可以设定是否接收短信。
我写了一个windows服务,每天定时检索数据库,满足条件就发送短信。
关于具体实现细节,我想到两种,但不知哪种更好,请帮忙分析:
(1)将数据库中满足条件的用户放入缓存,每隔五分钟或十分钟检查一次缓存,如果有满足条件的用户就发送短信。这种方式,第一要在特定时间更新缓存(比如后台删除了用户,或用户更改了日期及是否接收短信等操作),第二是,由于每天向每个满足条件的用户发送一次短信即可,因此需要给用户设定的每个纪念日设定一个标识,发送完成后更改状态。但这样一来,还会涉及到一个问题,比如初始为0,发送之后为1,这个肯定会作为检索满足发短信用户的条件,如果发送之后始终为1,那么用户如果更改了日期也就不能再接收了。因此,还需要在用户对日期操作改变时更新发送短信的状态。
(2)利用windows服务的定时功能,每天只执行一次,比如每天的9点,这种方式相对上面的会省事好多,对数据库也不会产生太大压力。但这样一来,可能会产生另一个问题:比如有大量用户待发送,几千或几万,如果只执行一次,是否能够通过这一次全部发送成功,因为通过windows服务是完全自动运行的,没有人工干预。这是我目前所担心的。
解决方案 »
- 服务器上导数据到excl,出现System.Runtime.InteropServices.COMException (0x80(0x800A03EC):未找到
- asp.net中DataView的简单问题
- 不知道什么原因,总是未将对象引用设置到对象的实例
- 一个困绕我好长时间的问题
- 在一个系统登陆后,能将个人的相关资料放到一个Session对象中,这个怎么实现啊
- 我是初学者,帮忙,求你们了。
- 关于上传文件避免重名的问题
- 关于服务器控件table的问题
- 一个DataGrid控件能绑定多个数据源吗?
- 问个土问题!!!!!!!!
- 关于SVN的问题,十万火急啊。着急上火
- asp.net 客户端回调服务端函数怎么刷新页面?
其次不管哪种,采用windows定时任务或website的定时器(线程),其实是完全一样的。当然采用website就要求website不能down了。设定一个每秒的定时器,到了一个总的时间,全部发。或者到了某个用户指定 的时间再发。都可以实现的。