C# ASP.net计划类似Facebook的帖子

C# ASP.net计划类似Facebook的帖子,c#,asp.net,scheduled-tasks,quartz-scheduler,C#,Asp.net,Scheduled Tasks,Quartz Scheduler,我正在尝试做一些类似于Facebook页面的帖子调度的事情。。。论ASP.net/c# 所以基本上我需要的是: 用户填写一些文本框 选择一个日期 这篇文章在那个日期发布。。。 我无法真正理解这个逻辑以及编码 到目前为止,我所想的是,一旦用户提交帖子,将细节存储在类似于ScheduledPosts的SQL表中,并且当CurrentDate(服务器日期)与日期匹配时。。。。 将SQL条目从那里传输到实际的PostTable 现在,实际的过程需要在没有任何页面加载或用户执行任何操作的情况下进行。。

我正在尝试做一些类似于Facebook页面的帖子调度的事情。。。论ASP.net/c#

所以基本上我需要的是:

  • 用户填写一些文本框
  • 选择一个日期
这篇文章在那个日期发布。。。 我无法真正理解这个逻辑以及编码

到目前为止,我所想的是,一旦用户提交帖子,将细节存储在类似于ScheduledPosts的SQL表中,并且当CurrentDate(服务器日期)与日期匹配时。。。。 将SQL条目从那里传输到实际的PostTable

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

请注意,我不想在facebook上发布任何东西。。。相反,尝试在我自己的asp.net网站上提交时间表表单

任何关于逻辑、编码、调度的帮助都将非常感谢


谢谢

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

  • 实现一个“挂起的帖子”表,并在服务器上运行一个单独的进程,负责在适当的时间将帖子从“挂起的帖子”表转移到“当前帖子”表
  • 将“publish_on”datetime字段添加到当前的posts表中,并在选择要在页面输出中显示的项目时,将“WHERE publish_on为NULL或publish_on>GETDATE()”子句添加到查询中。你填写这篇文章是为了在某个特定时间之前不想上线的帖子

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

    您可以用一张表来实现这一点。只需要一个“提交”日期字段(用于记录)、一个“发布”日期字段和一个布尔值“发布”字段。创建一个Windows服务,每5分钟左右运行一次,并让该服务执行日期检查;当它找到一个满足日期条件时,它只需将布尔字段切换为“true”,页面逻辑就可以显示帖子

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


    我同意方法2。如果在该解决方案中需要,您甚至可以将其设置为窗口。只需确保为发布日期存储的值与时区无关,或者使用偏移量存储,这样帖子就不会在不经意间根据查看者的时区提前/延迟上线。解决方案2中的方法还保持了post模式的完整性,并消除了与基本上维护第二个副本相关的维护。