我对Windows服务很新。我正在尝试创建一个每晚都会更新数据库的应用程序。
我已经有了适用的代码(用于更新本身)
但我无法弄清楚如何在服务中对其进行编码。
Protected Overrides Sub OnStart(ByVal args() As String)
' Add code here to start your service. This method should set things
' in motion so your service can do its work.
Dim timerDelegate As New TimerCallback(UpdateDB)
serviceTimer = New Timer(timerDelegate, Nothing, 0, 20000)
End Sub
Protected Overrides Sub OnStop()
' Add code here to perform any tear-down necessary to stop your service.
End Sub
据我了解,上面的代码将在20秒内完成,对吧?我怎么能编码它所以它每天只运行一次......比如让我们说午夜。
谢谢你!
或者我应该使用网络服务?我可以安排吗?
答案 0 :(得分:2)
您需要使用Windows服务吗?
更简单的方法是创建一个控制台应用程序并使用Windows调度程序启动它。
Windows服务可能很难安装和调试,因此我只会在绝对必要时使用它们。
答案 1 :(得分:0)
一种可能的解决方案是让您的计时器以1000ms
间隔执行(取决于您需要与实际午夜的精确/接近程度)。显然,你的间隔越低,你就越接近午夜。
如果您希望计时器内的活动减少,并且您的执行阈值可能是午夜后的+5分钟,您可以每5分钟增加一次。
每次计时器触发时,您都会检查当前时间与您尝试触发事件的时间,在这种情况下是午夜。
如果当前时间是午夜,或者在您定义的午夜的阈值内,则执行您的代码。