2009-06-11 87 views
2

我正在使用c#与twitter进行通信,我需要编写一个调度系统来在用户定义的日期发送twitter消息。调度方法调用C#

要发送的消息在数据库中,包含日期和时间。

哪种方法检查数据库的预定消息并在时间到达时发送?

回答

0

实际上,解决方案包括使用Windows服务,但不能直接与ASP.NET MVC应用程序通信。我已经添加了一个处理任务的Web服务和Windows服务中的System.Threading.Timer来定期调用Web服务。

2

您需要准确的时间有多准确?你能不能每隔5分钟轮询一次数据库,说:“告诉我所有需要在当前时间+ 5分钟之前交付的消息”,然后将它们全部发送出去? (当然,将它们标记为已发送到数据库中)。如果它们有点早或晚,它有关系吗?

可以在C#端做调度,使其更加准确,但除非你真的需要我坚持一个非常简单的解决方案。

(根据您的数据库上可能会有越来越回调聪明的触发方式等等......但同样,我会与工作最简单的办法坚持下去。)

+0

我会很好的延迟5/10分钟。你提出什么解决方案? – jvalente 2009-06-11 08:25:26

+0

正如答案所述,每5分钟轮询一次数据库(例如,在Windows服务中使用Timer)。获取要发送的所有内容,发送它,将其标记为已发送。任务完成。 – 2009-06-11 08:54:20

0

有几种方法可以做到这一点,但我想最好的方法是设置一个Windows Service,它将定期轮询(频率取决于您)数据库的任何已发送的计划推文。

不用说,你需要处理的场景,如Internet连接或DB是下等

1

除了窗口服务选项(或后台线程),你可以只设立一个计划任务来运行应用程序轮询数据库并每隔定义的时间间隔发送一次推文。

Windows计划can be setup using C#如果需要,并且非常容易手动设置。