C#每隔30天运行一次代码

时间:2010-06-02 12:48:12

标签: c# asp.net

如果我要运行一些代码,或者每隔30天向我网站的用户发送一封电子邮件,该怎么办呢?

5 个答案:

答案 0 :(得分:19)

使用Windows Task Scheduler运行您的应用程序。

答案 1 :(得分:4)

选项:

1)在Windows任务计划程序中运行的控制台应用程序

2)Windows服务 http://www.c-sharpcorner.com/UploadFile/mahesh/window_service11262005045007AM/window_service.aspx

答案 2 :(得分:1)

您正在使用哪个框架?如果你像我一样使用.Net 4.0进行开发,我有一些指示。

如果您可以访问可以安装服务的计算机,我会在这种情况下使用新的和改进的工作流程服务。他们的好处是,工作流程可以持续数分钟,数小时,数天,数周,数月等等,处于“休眠状态”,直到延迟时间结束。

如果它是一台IIS机器(如果这是你想要的路线),那么在VS 2010中将其直接构建为“工作流服务”项目/解决方案相对简单。从那里你会看到一个设计师和工具栏中的几个工作流活动。

添加流程图活动以将您的电子邮件活动置于其中。流程图是理想的,因为它可以初始化您需要的任何内容,并且决策流可以在方向上向后重定向(与始终向前移动的序列活动相反)。你需要做的逻辑取决于你,因为你的问题没有提供很多细节。

现在,如果您正在使用.Net 3.5,那么我会考虑避免构建工作流,因为在切换到4.0时必须迁移(WF 3.5与4.0不兼容)。通过对计算机的管理员访问权限,您可以安装包含计时器的Windows服务,以根据需要每30天(或定义)触发代码。

答案 3 :(得分:1)

如果是特定于SQL Server,您可以使用SQL Jobs

答案 4 :(得分:1)

如果您想使用ASP.NET应用程序而不是单独的应用程序,您可以选择以下选项:

由于您希望它每30天而不是每天运行一次,我建议使用这种方法来使用计划表而不是应用程序变量或缓存来计划作业:

您可以在数据库中设置计划表,并检查global.asax上次更新的时间。在会话开始时,检查当前日期是否超过30天。如果是,则调用方法发送电子邮件。

如果您发送电子邮件,请使用当前日期更新您的日程表。