我正在使用c#与twitter进行通信,我需要编写一个计划系统来在用户定义的日期发送推特消息。
要发送的消息位于包含交付日期和时间的数据库中。
哪种方法可以检查数据库中的已调度消息,并在到达时间后发送它?
答案 0 :(得分:2)
您需要多长时间准确?您是否可以每5分钟对数据库进行一次轮询,并说“在当前时间+ 5分钟之前告诉我所有需要传递的消息”,然后将它们全部发送出去? (当然,将它们标记为在数据库中发送。)如果它们有点早或晚,这是否重要?
你可以在C#端进行调度以使其更准确,但除非你真的需要我坚持使用一个非常简单的解决方案。
(根据您的数据库,可能会有一些聪明的方法来触发回调......但是,我会坚持使用最简单的解决方案。)
答案 1 :(得分:1)
除了Windows服务选项(或后台线程)之外,您可以设置一个计划任务来运行轮询数据库的应用程序,并在每个定义的时间间隔发送一次推文。
Windows会根据需要安排can be setup using C#,并且非常容易手动设置。
答案 2 :(得分:0)
有几种方法可以做到这一点,但我想最好的方法是设置一个Windows Service,它会定期轮询(频率由你决定)任何尚未发送的预定推文的数据库
毋庸置疑,您需要处理互联网连接或数据库关闭等情况。
答案 3 :(得分:0)
实际上,解决方案包括使用Windows服务,但它无法直接与ASP.NET MVC应用程序通信。我添加了一个处理任务的Web服务和Windows服务中的System.Threading.Timer,以定期调用Web服务。