【问题标题】:Setting up a Daily Job in ASP.NET在 ASP.NET 中设置日常工作
【发布时间】:2018-11-02 02:26:36
【问题描述】:

我在 IIS 服务器中配置了一个 ASP.NET Webform 应用程序 (C#)。应用程序连接到另一台服务器上的数据库以进行正常操作。

现在我需要创建一个自动电子邮件系统。该系统应检查数据库中的某些条件,并据此自动向某些电子邮件 ID 发送电子邮件。我有一个 smtp 邮件服务器,我知道如何使用 C# 自动发送电子邮件。

此电子邮件应在每天的特定时间触发。那么我将如何在我的服务器中配置这样的工作呢?我有哪些选择?

我对 ASP 世界很陌生。感谢您的帮助。

【问题讨论】:

  • 您可以在计划任务中使用 Windows 服务或控制台应用程序。
  • 您可以使用Quartz.Net 。欲了解更多信息:quartz-scheduler.net
  • 你可以创建自己的调度器,应该有不少教程。作为替代方案,您可以使用诸如FluentSchedulerQuartzHangfire 之类的调度库。他们都应该支持重复的工作,可以每天、每周等安排。
  • 我过去使用Hangfire 发送我所有的电子邮件。

标签: c# asp.net scheduled-tasks jobs


【解决方案1】:

我会使用Hangfire 并创建一个recurring job(cron job) 来检查数据库是否需要发送邮件...如果是这样,请为每封需要发送的邮件排队Hangfire 作业。 它工作得非常好,我过去已经实现过。

如果你决定走这条路,如果你需要帮助,请告诉我。

【讨论】:

  • Hangfire FTW。我也推荐它!
  • 谢谢。现在,由于时间限制,我可能会选择一个简单的控制台应用程序。但可以肯定的是,我下次会记住这一点。
【解决方案2】:

如果您希望将邮件系统的逻辑和代码与其他应用程序分开,您还可以生成一个单独的项目(一个生成 .exe 文件的 C#.net 控制台应用程序),然后在您想要的位置启动它使用 Windows 任务计划程序的时间间隔。

【讨论】:

    【解决方案3】:

    尝试在窗口服务器中探索计划任务。您可以在 C# 中编写控制台应用程序,然后将您的计划任务指向特定时间运行控制台应用程序。

    如果你真的想使用asp.net网站,那么你可以编写一个powershell脚本来调用asp.net web服务,并使用调度任务在某个时间运行脚本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-16
      • 2021-12-09
      • 1970-01-01
      • 2021-04-22
      • 2017-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多