C# 调度任务与服务

C# 调度任务与服务,c#,windows,service,C#,Windows,Service,我有一个本地和一个远程数据库。出于某种原因,我想同步本地和远程,比如说,每5分钟同步一次。我应该使用使用计时器进行同步的服务还是在windows server上计划任务?我过去总是为定时任务创建windows服务。但几年前,我毫无遗憾地转向了任务调度器方法 以下是我发现的使用任务调度器方法的优点: 要编写的代码更少(主要是因为您没有计时器的开销) 易于调试(只需点击F5并运行它,因为它是一个普通的EXE) 更容易启动临时执行(以防您希望在某个时候立即检查结果,而不是等到下一次定时执行) 另外,为

我有一个本地和一个远程数据库。出于某种原因,我想同步本地和远程,比如说,每5分钟同步一次。我应该使用使用计时器进行同步的服务还是在windows server上计划任务?

我过去总是为定时任务创建windows服务。但几年前,我毫无遗憾地转向了任务调度器方法

以下是我发现的使用任务调度器方法的优点:

  • 要编写的代码更少(主要是因为您没有
    计时器的开销)

  • 易于调试(只需点击F5并运行它,因为它是一个普通的EXE)

  • 更容易启动临时执行(以防您希望在某个时候立即检查结果,而不是等到下一次定时执行)


  • 另外,为了将来的参考,这类问题确实应该在中提出,因为它是关于设计选择的,而不是现有代码的问题。

    我过去总是为定时任务提供Windows服务。但几年前,我毫无遗憾地转向了任务调度器方法

    以下是我发现的使用任务调度器方法的优点:

  • 要编写的代码更少(主要是因为您没有
    计时器的开销)

  • 易于调试(只需点击F5并运行它,因为它是一个普通的EXE)

  • 更容易启动临时执行(以防您希望在某个时候立即检查结果,而不是等到下一次定时执行)


  • 另外,为了将来的参考,这类问题确实应该在中提出,因为它是关于设计选择的,而不是现有代码的问题。

    我过去总是为定时任务提供Windows服务。但几年前,我毫无遗憾地转向了任务调度器方法

    以下是我发现的使用任务调度器方法的优点:

  • 要编写的代码更少(主要是因为您没有
    计时器的开销)

  • 易于调试(只需点击F5并运行它,因为它是一个普通的EXE)

  • 更容易启动临时执行(以防您希望在某个时候立即检查结果,而不是等到下一次定时执行)


  • 另外,为了将来的参考,这类问题确实应该在中提出,因为它是关于设计选择的,而不是现有代码的问题。

    我过去总是为定时任务提供Windows服务。但几年前,我毫无遗憾地转向了任务调度器方法

    以下是我发现的使用任务调度器方法的优点:

  • 要编写的代码更少(主要是因为您没有
    计时器的开销)

  • 易于调试(只需点击F5并运行它,因为它是一个普通的EXE)

  • 更容易启动临时执行(以防您希望在某个时候立即检查结果,而不是等到下一次定时执行)


  • 另外,作为将来的参考,这类问题确实应该在中提出,因为这是一个设计选择,而不是现有代码的问题。

    如果您使用的是MS SQL Server,并且本地(源)服务器至少有标准版或更高版本,那么您应该考虑使用复制(SQL Server Express不能用作发布服务器或分发服务器)。如果本地服务器有Express edition,但远程服务器是Standart edition或更高版本,则应在远程端设置请求订阅以从Express Server请求数据

    如果复制不是一种情况,那么我将提供使用计时器的服务(使用系统帐户运行),因为您需要指定哪个Windows帐户将用于运行计划任务的任务。当帐户密码更改时,您的任务将不会执行,甚至更糟的是,您将无法获得有关它的任何信息


    如果您的频率很长(每周一次或每天一次),则使用服务应被视为浪费系统资源,但我认为5分钟的时间是可以接受的。

    如果您使用的是MS SQL Server,并且本地(源)服务器至少具有标准版或更高版本,则应考虑使用复制(SQL Server Express不能用作发布服务器或分发服务器)。如果本地服务器有Express edition,但远程服务器是Standart edition或更高版本,则应在远程端设置请求订阅以从Express Server请求数据

    如果复制不是一种情况,那么我将提供使用计时器的服务(使用系统帐户运行),因为您需要指定哪个Windows帐户将用于运行计划任务的任务。当帐户密码更改时,您的任务将不会执行,甚至更糟的是,您将无法获得有关它的任何信息


    如果您的频率很长(每周一次或每天一次),则使用服务应被视为浪费系统资源,但我认为5分钟的时间是可以接受的。

    如果您使用的是MS SQL Server,并且本地(源)服务器至少具有标准版或更高版本,则应考虑使用复制(SQL Server Express不能用作发布服务器或分发服务器)。如果本地服务器有Express edition,但远程服务器是Standart edition或更高版本,则应在远程端设置请求订阅以从Express Server请求数据

    如果复制不是一种情况,那么我将提供使用计时器的服务(使用系统帐户运行),因为您需要指定哪个Windows帐户将用于运行计划任务的任务。当帐户密码更改时,您的任务将不会执行,甚至更糟的是,您将无法获得有关它的任何信息

    如果您的频率很长(一周一次或一天一次),那么使用服务应该被视为浪费系统资源,但我认为这是可以接受的