【问题标题】:execute scheduled task in C#在 C# 中执行计划任务
【发布时间】:2012-02-07 01:56:37
【问题描述】:

我需要构建一个小型实用程序,它会触发 sql 查询以获取用户电子邮件地址列表并向他们发送计划每天执行的电子邮件。

我想知道在 .net 中执行此操作的好方法是什么

我正在开发 VS2010 高级版,c# 4.0

【问题讨论】:

  • 最好的办法是使用 SQL 代理直接在数据库服务器上安排任务(我假设这里有一个 MS 堆栈和 SQL Server)。
  • 对于电子邮件,请查看使用 SMTP System.Net.Mail 进行查询,查看创建您的服务所针对的存储过程,对于实际的 Windows 服务..您可以通过 .dll 或控制台应用程序。您的应用程序将拥有 3 个基本组件。如果您将其作为 .EXE 执行,请查看 System.Diagnostics 和 Process 和 ProcessInfo 类。如果您的数据库处理电子邮件/发送电子邮件,您可以通过创建一些数据库脚本、包等在一个位置完成所有这些操作。

标签: c# .net visual-studio-2010 scheduled-tasks


【解决方案1】:

这取决于您的要求。

我认为您可以创建一个封装此行为的控制台应用程序,然后您可以使用 windows schedule task 安排任务

【讨论】:

    【解决方案2】:

    您应该使用task scheduler,并让它每天执行一次您的程序。

    另一种方法可能是编写一个服务,该服务会等到一天中的某个时间并运行这个简单的任务,但这似乎有点过于严厉,除非您将来对此服务有更多计划。 (例如,您希望服务能够发送电子邮件、进行一些数据库维护、侦听某个端口等)

    让应用程序在后台全职运行这样一个简单的任务似乎不是一个好方法。停止应用程序的方法太多。

    【讨论】:

      【解决方案3】:

      使用您想要的任何语言或平台编写应用程序,然后使用Windows Task Scheduler 使应用程序按照您的计划运行。

      这样,您可以将您的应用程序专注于其核心内容(获取内容、发送电子邮件),并让 Microsoft 担心创建强大的调度服务的细节。

      【讨论】:

        【解决方案4】:

        这是一个nice example 在.NET 中编写计划任务

        【讨论】:

          【解决方案5】:

          您需要用 .net 编写吗?

          如果是,请按照已经建议的方式使用任务调度程序。如果没有,那么您也可以直接在数据库中创建作业。

          【讨论】:

            【解决方案6】:

            .Net 就可以了。我建议编写一个控制台应用程序来执行您需要的操作,并使用Windows Task Scheduler 在您选择的时间间隔运行您的应用程序。

            【讨论】:

              【解决方案7】:

              如果您想在 Web 环境(ASP.Net)中执行此电子邮件发送程序,您可以使用ATrigger 调度服务。 .Net library 也可用于创建计划任务而无需开销。

              免责声明:我是他们团队中的一员。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2016-05-24
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2014-10-25
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多