代码之家  ›  专栏  ›  技术社区  ›  Sc.Shenoy

注明日期的提醒。net mvc web api

  •  -1
  • Sc.Shenoy  · 技术社区  · 7 年前

    Im正在构建 mvc5和;webapi 2网站 我正在努力研究消息队列和通用总线的概念。具体来说,我正在尝试添加任务,并为这些任务指定截止日期。 我想在任务到期前一天向用户发送上述任务的提醒(没有用户登录,有点像后台任务)

    我已配置电子邮件服务 并在用户执行任务时工作。例如,用户输入一个任务,JS函数激发一个web api,该api构造任务并使用我的电子邮件服务发送电子邮件。但这取决于用户的输入,仅在用户首次输入任务时有效。

    我的堆栈- -MVC5 ASP。净值(标准)(&WebApi2 -SQL Server -JS和AJAX -AWS托管

    一些研究为我指明了SQS和SNS的方向 我有点了解排队系统,但我仍然不知道原始消息如何到达SNS主题,然后进入队列。此外,SQS队列的消息生存期最长为14天,这对于从当前日期起数月内到期的任务不起作用。 所以我不能只是把一个任务发送过来,让它在那里等待14天以上,直到交付为止。过去,当我用PHP编写代码时,我们为MySQL服务器表做了cron作业,以查看是否有任何更改,然后在某处执行操作或输出,并编写了一些小应用程序来侦听更改,然后发送电子邮件。不确定是否存在这样的情况。NET或SQS/SNS选项是否是最佳方式。

    我研究的事情:

    https://aws.amazon.com/blogs/aws/queues-and-notifications-now-best-friends/
    https://www.youtube.com/watch?v=UesxWuZMZqI
    https://docs.aws.amazon.com/sdk-for-net/v2/developer-guide/sns-apis-intro.html
    https://docs.aws.amazon.com/sns/latest/dg/SendMessageToHttp.html
    
    1 回复  |  直到 7 年前
        1
  •  -1
  •   Jasen    7 年前

    您已经标识了工作队列和工作消费者。你错过了作品制作人。web应用程序是生产者,但需要用户交互(正如您所认识的)。

    最简单的方法是编写一个(控制台)程序,读取事件存储并为队列生成工作(当前提醒)。然后,您可以将该程序安排为在循环周期中执行,就像cron作业一样。Windows具有任务调度器以及其他供应商提供的类似cron的服务。

    您可以使用更高级的程序构建一个服务,以便它能够持续运行。