96 lines
3.9 KiB
VB.net
96 lines
3.9 KiB
VB.net
Imports System.ComponentModel
|
|
Imports DigitalData.Modules.Logging
|
|
Imports NLog
|
|
Public Class MyNewService
|
|
Dim MyLogger1 As LogConfig
|
|
Shared Logger1 As NLog.Logger
|
|
Dim MyLogger2 As LogConfig
|
|
Shared Logger2 As NLog.Logger
|
|
Public Shared threadRunner1 As BackgroundWorker
|
|
|
|
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 = 10000
|
|
'ClassLogger.Add("Timer - Intervall: " & clsSQLITE.konf_intervall & " Minuten", False)
|
|
Timer1.Enabled = True
|
|
MyLogger1 = New LogConfig(LogConfig.PathType.CurrentDirectory, Nothing, "Log1")
|
|
Logger1 = MyLogger1.LogFactory.GetCurrentClassLogger()
|
|
MyLogger2 = New LogConfig(LogConfig.PathType.CurrentDirectory, Nothing, "Log2")
|
|
Logger2 = MyLogger2.LogFactory.GetCurrentClassLogger()
|
|
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.
|
|
|
|
|
|
' clsLogger.Init(My.Application.Info.DirectoryPath & "\Log", "_SERVICEResultHandler")
|
|
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 = 12000 ' 12 seconds
|
|
AddHandler timer.Elapsed, AddressOf Me.OnTimer1
|
|
timer.Start()
|
|
|
|
End Sub
|
|
Private Sub RUN_THREAD()
|
|
' TODO: Insert monitoring activities here.
|
|
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)
|
|
' 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.
|
|
Logger1.Info("Service stopped")
|
|
Logger2.Info("Service stopped")
|
|
End Sub
|
|
Protected Overrides Sub OnPause()
|
|
Logger1.Info("In OnPause...")
|
|
Logger2.Info("In OnPause...")
|
|
End Sub
|
|
Protected Overrides Sub OnContinue()
|
|
Logger1.Info("In OnContinue...")
|
|
Logger2.Info("In OnContinue...")
|
|
End Sub
|
|
End Class
|