私は非常にWindowsサービスに慣れています。 dbを夜間に更新するアプリケーションを作成しようとしています。ナイトリーアップデートDB with 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秒間、正しく実行されますか?どのように私はそれが1日1回だけ実行するようにコード化することができます...と言ってみましょう深夜。
ありがとうございました!
ウェブサービスを使用する必要がありますか?それをスケジュールすることはできますか?
Windowsのサービスルートを放棄し、ウィンドウのタスクスケジューリングサービスを使用してスケジュールするコンソールアプリケーションを作成するだけで、人生は10倍も簡単になると言います。私はあなたのコードが動作していると言うことを知っているが、ファンキーなことが起こり、それをデバッグする必要がある1年のうちに、コンソールアプリケーションのデバッグが簡単になることがわかる。さらに、サービスがタイマーにハードコードされている(または設定ファイルからタイマーが読み込まれている)間に、いつでもコンソールアプリケーションを手動で実行できます。 –
ありがとうございます。私はまだそれほど遠くないからです。私は今それを試してみます。 Windowsコンソールアプリケーション、そうですか? –
幸運! Windowsサービスを作成するのはかなり簡単で、さらに簡単なオープンソースフレームワークもありますが、私は一般的に、常に稼働している必要があるプログラムや機械条件の変更に対応する必要のあるプログラムのみを推奨します。 –