MS Service
This commit is contained in:
@@ -2,35 +2,94 @@
|
||||
Imports DigitalData.Modules.Logging
|
||||
Imports NLog
|
||||
Public Class MyNewService
|
||||
Private Shared _MyLoggerConfig As LogConfig
|
||||
Public Shared threadRunner As BackgroundWorker
|
||||
Private Shared Logger As Logger = LogManager.GetCurrentClassLogger
|
||||
Private Shared _MyLoggerConfig1 As LogConfig
|
||||
Private Shared _MyLoggerConfig2 As LogConfig
|
||||
Public Shared threadRunner1 As BackgroundWorker
|
||||
Private Shared Logger1 As Logger '= LogManager.GetCurrentClassLogger
|
||||
Private Shared Logger2 As Logger '= LogManager.GetCurrentClassLogger
|
||||
Private eventId As Integer = 1
|
||||
Protected Overrides Sub OnStart(ByVal args() As String)
|
||||
|
||||
|
||||
|
||||
' '#Thread für Durchlauf generieren
|
||||
threadRunner1 = New BackgroundWorker()
|
||||
threadRunner1.WorkerReportsProgress = True
|
||||
threadRunner1.WorkerSupportsCancellation = True
|
||||
AddHandler threadRunner1.DoWork, AddressOf RUN_THREAD
|
||||
AddHandler threadRunner1.RunWorkerCompleted, AddressOf Thread_Completed
|
||||
|
||||
' '### Den Timer generieren
|
||||
Dim Timer1 As New System.Timers.Timer()
|
||||
'Das Event hinterlegen welches bei "Tick" ausgelöst wird
|
||||
AddHandler Timer1.Elapsed, AddressOf Thread1_Run
|
||||
' Set the Interval
|
||||
Timer1.Interval = 60000
|
||||
'ClassLogger.Add("Timer - Intervall: " & clsSQLITE.konf_intervall & " Minuten", False)
|
||||
Timer1.Enabled = True
|
||||
Logger1.Info("Timer gestartet")
|
||||
' Und den Durchlauf das erste Mal starten
|
||||
threadRunner1.RunWorkerAsync()
|
||||
|
||||
' Code zum Starten des Dienstes hier einfügen. Diese Methode sollte Vorgänge
|
||||
' ausführen, damit der Dienst gestartet werden kann.
|
||||
_MyLoggerConfig = New LogConfig(LogConfig.PathType.CurrentDirectory)
|
||||
' _MyLoggerConfig1 = New LogConfig(LogConfig.PathType.CurrentDirectory, Nothing, "Timer1")
|
||||
_MyLoggerConfig2 = New LogConfig(LogConfig.PathType.CurrentDirectory, Nothing, "Timer2")
|
||||
|
||||
' clsLogger.Init(My.Application.Info.DirectoryPath & "\Log", "_SERVICEResultHandler")
|
||||
Logger.Info("Service started")
|
||||
Logger1.Info("Service started")
|
||||
Logger2.Info("Service started")
|
||||
' Set up a timer to trigger every minute.
|
||||
Dim timer As System.Timers.Timer = New System.Timers.Timer()
|
||||
timer.Interval = 60000 ' 60 seconds
|
||||
AddHandler timer.Elapsed, AddressOf Me.OnTimer
|
||||
timer.Interval = 30000 ' 30 seconds
|
||||
AddHandler timer.Elapsed, AddressOf Me.OnTimer1
|
||||
timer.Start()
|
||||
|
||||
End Sub
|
||||
Private Sub OnTimer(sender As Object, e As Timers.ElapsedEventArgs)
|
||||
Private Sub RUN_THREAD()
|
||||
_MyLoggerConfig1 = New LogConfig(LogConfig.PathType.CurrentDirectory, Nothing, "TimerXYZ")
|
||||
Logger1 = LogManager.GetCurrentClassLogger
|
||||
' TODO: Insert monitoring activities here.
|
||||
Logger.Info("Monitoring the System - eventId: " & eventId)
|
||||
Logger1.Info("RUN_THREAD - Monitoring the System - eventId: " & eventId)
|
||||
End Sub
|
||||
Public Shared Sub Thread1_Run()
|
||||
If Not threadRunner1.IsBusy Then
|
||||
threadRunner1.RunWorkerAsync()
|
||||
End If
|
||||
End Sub
|
||||
Private Shared Sub Thread_Completed(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) 'Handles threadDateiimport.RunWorkerCompleted
|
||||
' This event fires when the DoWork event completes
|
||||
Try
|
||||
Dim result As String = ""
|
||||
If e.Cancelled Then
|
||||
Logger1.Warn("Der Process wurde durch den Anwender abgebrochen")
|
||||
ElseIf e.Error IsNot Nothing Then
|
||||
Logger1.Warn("Fehler bei Durchlauf. Der Vorgang wird abgebrochen: " & e.Error.Message)
|
||||
End If
|
||||
|
||||
Catch ex As Exception
|
||||
EventLog.WriteEntry("DDWMResultHandler", "Unexpected error in Thread_Completed: " & ex.ToString(), EventLogEntryType.Error)
|
||||
End Try
|
||||
End Sub
|
||||
Private Sub OnTimer1(sender As Object, e As Timers.ElapsedEventArgs)
|
||||
_MyLoggerConfig2 = New LogConfig(LogConfig.PathType.CurrentDirectory, Nothing, "Timer1")
|
||||
Logger2 = LogManager.GetCurrentClassLogger
|
||||
' TODO: Insert monitoring activities here.
|
||||
Logger2.Info("OnTimer1 - Monitoring the System - eventId: " & eventId)
|
||||
eventId = eventId + 1
|
||||
End Sub
|
||||
|
||||
Protected Overrides Sub OnStop()
|
||||
' Hier Code zum Ausführen erforderlicher Löschvorgänge zum Beenden des Dienstes einfügen.
|
||||
Logger.Info("Service stopped")
|
||||
Logger1.Info("Service stopped")
|
||||
Logger2.Info("Service stopped")
|
||||
End Sub
|
||||
Protected Overrides Sub OnPause()
|
||||
Logger.Info("In OnPause...")
|
||||
Logger1.Info("In OnPause...")
|
||||
Logger2.Info("In OnPause...")
|
||||
End Sub
|
||||
Protected Overrides Sub OnContinue()
|
||||
Logger.Info("In OnContinue...")
|
||||
Logger1.Info("In OnContinue...")
|
||||
Logger2.Info("In OnContinue...")
|
||||
End Sub
|
||||
End Class
|
||||
|
||||
Reference in New Issue
Block a user