稍后发送消息

时间:2012-02-20 14:52:35

标签: php asp.net

如果您曾经访问过短信网站,您可能已经看到用户可以决定他们希望稍后安排发送短信。 因此,用户登录到该站点(现实生活中的示例位于http://www.smslive247.comhttp://routesms.com),组成短信并点击“稍后发送消息”radiobox。这为用户提供了一个日期时间字段,然后您可以选择要分派消息的日期和时间(以及更改时区的能力)。 基本上,用户可以安排发送短信。

我也在设计一个类似的网站,并想知道是否有人可以告诉我这是怎么做的。

感谢。

3 个答案:

答案 0 :(得分:1)

使用消息队列(例如在数据库中),该消息队列由处理记录并发送消息的单独进程(例如服务或cron作业)读取。

答案 1 :(得分:0)

一种方法是存储消息并编写服务以发送排队的消息。您可以将消息存储在数据库中。

答案 2 :(得分:0)

一种方法是使用数据库。

创建一个表,其中包含应发送消息的日期时间的列,以及包含该消息的另一列。

从后台线程(甚至是其他进程,例如Windows服务或SQL代理任务),每隔一段时间唤醒一次,读取表中的第一行,然后查看是否有时间执行它。类似的东西:

CREATE TABLE MyQueue (
    TimeToExec DATETIME NOT NULL,
    Message NVARCHAR(MAX) NOT NULL
)

INSERT INTO MyQueue VALUES(GETDATE(), N'message')

;WITH MYCTE AS (
  SELECT TOP 1 Message
    FROM MyQueue
    WITH (ROWLOCK, READPAST)
      WHERE TimeToExec <= GETDATE()
      ORDER BY TimeToExec
) DELETE FROM MYCTE
  OUTPUT DELETED.Message