【发布时间】:2015-09-10 01:40:57
【问题描述】:
我需要一些关于逻辑的帮助。 我有一个发送短信的应用程序。要发送的 SMS 由用户(.NET MVC 应用程序)插入,DB 中有一个表。
表格输出短信:
- Id(身份)
- 接收方(字符串)
- 消息(字符串)
- DateTime2Send(日期时间)
- 已发送(布尔型)
我的计划应用程序是 Windows 服务(使用 Topshelf),它每 10 秒检查一次表中的新行 WHERE 字段 Sent 不是 TRUE 且 DateTime.Now-DateTime2Send=
现在我需要实施按间隔发送短信的时间表 - 每 30 分钟,每天,每周,每月。 为此,我创建了一个表 SMSschedule:
- Id(身份)
- 接收方(字符串)
- ScheduleTypeId(int, FKey, values 30 minutes, Daily, Weekly,monthly)
- Date2Send (int)
- Time2Send(日期时间)
- 消息(字符串)
可能有 1+ 条消息计划发送给每个接收者。我想制定另一个计划,每 10 分钟(或 30 分钟)检查一次该表,并在第一个表 outputSMS 中创建数据(哦,我需要添加字段来识别用户计划或插入)。我想按这个间隔检查它,因为用户可以随时按时进行更改。 接收器的数量最多为 20k,每个接收器可能有多个时间表。
接收方 SMS_ScheduleType SMS_DateToSend SMS_DayOfWeekToSend SMS_TimeToSend SMS_TextToSend Rec-1 每天 0 0 20:00 晚上 Rec-2 每天 0 0 6:00 早上 Rec-3 每小时 0 0 0 信息每小时 Rec-4 每周 0 3 15:30 每周测试 Rec-4 每月 23 0 10:00 每月测试对于每小时我是否应该再添加一个字段来设置发送时间?对于 Time2Send 字段步长必须为 0.5 小时,即 30 分钟。 你有什么建议? DB是Postgres,可以转移到Oracle。
【问题讨论】:
标签: c# postgresql scheduled-tasks quartz.net