计划计时器每月执行一次 - C#

Posted

技术标签:

【中文标题】计划计时器每月执行一次 - C#【英文标题】:Schedule timer to be executed once a month - C# 【发布时间】:2012-04-26 05:57:20 【问题描述】:

我需要每月一次将一些数据从 SQL Server 传输到 mysql。我已经完成了这个转移的工作,但我不知道(而且我还没有在互联网上找到)如何设置一个计时器来执行这个转移每个月的特定日期。我不想只设置以毫秒为单位的计时器间隔,因为天数因一个月而异。

感谢任何帮助...

【问题讨论】:

:/ forum.lessthandot.com/viewtopic.php?f=17&t=11400 调度 sql server 作业 -- google 上的第一个结果 【参考方案1】:

这听起来像是您应该将其设置为计划任务或 SQL 服务器作业,而不是通过计时器让进程运行一个月?

链接:

SQL Server job in 2008 Schedule windows task

我想您也可以将任务设置为 Windows 服务,并通过数据库中的设置检查您上次进行更新的时间,但这似乎有点矫枉过正。听上去你已经有了一个可以完成这项工作的 C# 应用程序设置,所以我只做一个计划好的 Windows 任务。

【讨论】:

我不喜欢通过 SQL Server 工作来做,我会看看第 2 篇文章,我认为它可以解决我的问题。 我认为最适合您。 SQL Server 作业确实很棒,我们一直使用它们来完成各种任务,所以我鼓励大家熟悉它们。【参考方案2】:

您可以使用 Windows 任务计划程序来完成此类工作。查看here 的命令行选项Schtasks(有很多)

示例 1:

安排在每个月的第一天运行的任务

以下命令安排 MyApp 程序在第一个运行 每个月的一天。因为值 1 是两者的默认值 /mo(修饰符)参数和 /d(天)参数,这些参数 从命令中省略。

schtasks /create /tn "My App" /tr myapp.exe /sc monthly

示例 2:

安排第 15 天的任务

以下命令安排 MyApp 程序在 15 日运行 每个月的下午 3:00 (15:00)。它使用 /d 参数来指定 日期。它还使用 /st 参数来指定开始时间。

schtasks /create /tn "My App" /tr myapp.exe /sc monthly /d 15 /st 15:00

【讨论】:

这就是我需要的!您能否指定所有参数,就好像我想每 28 日(或任何一天)运行一次程序一样?仅用于测试目的...

以上是关于计划计时器每月执行一次 - C#的主要内容,如果未能解决你的问题,请参考以下文章

每15分钟重复一次函数c# [关闭]

如何让crontab执行脚本后并且把日志输出到另一个文件?

Timer和TimerTask定时器使用

c# timer如何设定一个2分钟的倒计时,并且到时间只执行一次 ?

C# 如何间隔一定的时间执行一次代码?

timer类