2009-06-11 82 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#如果需要,並且非常容易手動設置。