【问题标题】:ASP.net Schedule Post like FacebookASP.net 安排像 Facebook 一样的帖子
【发布时间】:2016-07-25 22:18:46
【问题描述】:

我正在尝试在 ASP.net/c# 上做类似于 Facebook 页面的帖子调度...

所以基本上我需要的是:

  • 用户填写了几个文本框
  • 选择日期...

帖子在该日期发布... 我无法真正理解其中的逻辑和编码......

到目前为止,我的想法是,一旦用户提交帖子,将详细信息存储在 SQL 中的表中,如 SheduledPosts,并且当 CurrentDate(Server Date) 与日期匹配时...... 将 SQL 条目从那里传输到实际的 PostTable。

现在实际过程需要在没有任何页面加载或用户执行任何操作的情况下发生......所以我也不明白如何从服务器端发生......

请注意,我并没有尝试在 facebook 上发布任何内容...而是尝试在我自己的 asp.net 网站上提交时间表表格...

任何关于逻辑、编码、调度的帮助将不胜感激......

谢谢

【问题讨论】:

    标签: c# asp.net scheduled-tasks quartz-scheduler


    【解决方案1】:

    我可以想到几种不同的方法来实现这一点:

    1. 实现“待发帖子”表,并在服务器上运行一个单独的进程,负责在适当的时间将帖子从“待发帖子”表转移到“当前帖子”表。
    2. 将“publish_on”日期时间字段添加到您当前的帖子表中,并在选择要在页面输出中显示的项目时,将“WHERE publish_on IS NULL OR publish_on > GETDATE()”子句添加到您的查询中。您可以为在特定时间之前不想发布的帖子填写此信息。

    就我个人而言,我会选择第二种方法,因为我认为这是一个更优雅的解决方案。

    【讨论】:

    • 我同意方法 2。如果在该解决方案中需要,您甚至可以将其设为窗口。只需确保为发布日期存储的值与时区无关或存储有偏移量,因此帖子不会因查看者的时区而无意中提前/延迟上线。解决方案 2 中的方法还保持了 post 架构的完整性,并消除了与本质上维护第二个副本相关的维护。
    【解决方案2】:

    你可以用一张桌子做到这一点。只需有一个“提交”日期字段(供您记录)、一个“发布”日期字段和一个布尔“已发布”字段。创建一个每隔 5 分钟左右运行一次的 Windows 服务,并让该服务执行日期检查;当它找到满足日期条件的内容时,它只是将布尔字段切换为“true”,然后您的页面逻辑可以显示该帖子。

    以下是创建简单 Windows 服务的演练:

    https://msdn.microsoft.com/en-us/library/zt39148a%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-07
      • 1970-01-01
      • 2016-11-23
      • 2020-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多