EDMIService: Refactor a bit, set concurrency to 1 for now
This commit is contained in:
parent
f6d8a8ec77
commit
ab83138f84
@ -194,6 +194,7 @@
|
||||
<Compile Include="Methods\IDB\UpdateFile\UpdateFileMethod.vb" />
|
||||
<Compile Include="Methods\IDB\UpdateFile\UpdateFileRequest.vb" />
|
||||
<Compile Include="Methods\IDB\UpdateFile\UpdateFileResponse.vb" />
|
||||
<Compile Include="Scheduler\LogProvider.vb" />
|
||||
<Compile Include="Scheduler\Scheduler.vb" />
|
||||
<Compile Include="Scheduler\DatatableJob.vb" />
|
||||
<Compile Include="Scheduler\JobListener.vb" />
|
||||
|
||||
@ -9,6 +9,8 @@ Imports Quartz
|
||||
Public Class DatatableJob
|
||||
Implements IJob
|
||||
|
||||
|
||||
|
||||
Private Const COMMAND_SQL_TIMEOUT = 240
|
||||
|
||||
Private _MSSQL As MSSQLServer
|
||||
|
||||
@ -202,7 +202,7 @@ Public Class JobListener
|
||||
|
||||
_MSSQL.ExecuteNonQuery($"INSERT INTO TBAPPSERV_CRON_DETAIL_HISTORY (DETAIL_ID) VALUES ({oDetailId})")
|
||||
Catch ex As Exception
|
||||
_Logger.Warn("Unexpected error in JobListener: {0}", ex.Message)
|
||||
_Logger.Warn("Unexpected error in SaveDataTables: {0}", ex.Message)
|
||||
_Logger.Error(ex)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
34
Service.EDMIService/Scheduler/LogProvider.vb
Normal file
34
Service.EDMIService/Scheduler/LogProvider.vb
Normal file
@ -0,0 +1,34 @@
|
||||
Imports Quartz.Logging
|
||||
|
||||
Public Class LogProvider
|
||||
Implements ILogProvider
|
||||
|
||||
Private ReadOnly Logger As DigitalData.Modules.Logging.Logger
|
||||
|
||||
Public Sub New(Logger As DigitalData.Modules.Logging.Logger)
|
||||
MyBase.New()
|
||||
Me.Logger = Logger
|
||||
End Sub
|
||||
|
||||
Public Function OpenNestedContext(message As String) As IDisposable Implements ILogProvider.OpenNestedContext
|
||||
Throw New NotImplementedException()
|
||||
End Function
|
||||
|
||||
Public Function OpenMappedContext(key As String, value As Object, Optional destructure As Boolean = False) As IDisposable Implements ILogProvider.OpenMappedContext
|
||||
Throw New NotImplementedException()
|
||||
End Function
|
||||
|
||||
Private Function GetLogger(name As String) As Logger Implements ILogProvider.GetLogger
|
||||
Return Function(level, func, exception, parameters)
|
||||
If exception IsNot Nothing Then
|
||||
Logger.Error(exception)
|
||||
ElseIf level >= LogLevel.Debug AndAlso func IsNot Nothing Then
|
||||
Logger.Debug(func(), parameters)
|
||||
ElseIf level >= LogLevel.Info AndAlso func IsNot Nothing Then
|
||||
Logger.Info(func(), parameters)
|
||||
End If
|
||||
|
||||
Return True
|
||||
End Function
|
||||
End Function
|
||||
End Class
|
||||
@ -7,28 +7,28 @@ Imports Quartz.Impl.Matchers
|
||||
Imports Quartz.Logging
|
||||
|
||||
Public Class Scheduler
|
||||
Private _Factory As StdSchedulerFactory
|
||||
Private _MSSQL As MSSQLServer
|
||||
Private _Scheduler As IScheduler
|
||||
Private _LogConfig As LogConfig
|
||||
Private _Logger As DigitalData.Modules.Logging.Logger
|
||||
Private _JobListener As JobListener
|
||||
Inherits BaseClass
|
||||
|
||||
Private _Props = New NameValueCollection From {
|
||||
{"quartz.serializer.type", "binary"}
|
||||
Private ReadOnly _Factory As StdSchedulerFactory
|
||||
Private ReadOnly _MSSQL As MSSQLServer
|
||||
Private _Scheduler As IScheduler
|
||||
Private ReadOnly _JobListener As JobListener
|
||||
|
||||
Private ReadOnly _Props = New NameValueCollection From {
|
||||
{"quartz.serializer.type", "binary"},
|
||||
{"quartz.threadPool.maxConcurrency", 1}
|
||||
}
|
||||
|
||||
Private Const JOB_GROUP As String = "DatatableJobs"
|
||||
|
||||
Public Sub New(LogConfig As LogConfig, MSSQL_ECM As MSSQLServer, TableStore As DataSet)
|
||||
_LogConfig = LogConfig
|
||||
_Logger = LogConfig.GetLogger()
|
||||
MyBase.New(LogConfig)
|
||||
|
||||
_Factory = New StdSchedulerFactory(_Props)
|
||||
_MSSQL = MSSQL_ECM
|
||||
_JobListener = New JobListener(LogConfig, _MSSQL, TableStore)
|
||||
|
||||
Logging.LogProvider.SetCurrentLogProvider(New LogProvider(_Logger))
|
||||
Logging.LogProvider.SetCurrentLogProvider(New LogProvider(Logger))
|
||||
End Sub
|
||||
|
||||
Public Async Sub Start()
|
||||
@ -46,7 +46,7 @@ Public Class Scheduler
|
||||
|
||||
Try
|
||||
If oCronjobs IsNot Nothing Then
|
||||
_Logger.Debug("Loaded {0} cron jobs", oCronjobs.Rows.Count)
|
||||
Logger.Debug("Loaded {0} cron jobs", oCronjobs.Rows.Count)
|
||||
|
||||
For Each oRow As DataRow In oCronjobs.Rows
|
||||
Dim oDefinition As String = oRow.Item("CRON_DEFINITION")
|
||||
@ -60,7 +60,7 @@ Public Class Scheduler
|
||||
Dim oInitJob As IJobDetail
|
||||
|
||||
Dim oJobData As New JobDataMap From {
|
||||
{"LogConfig", _LogConfig},
|
||||
{"LogConfig", LogConfig},
|
||||
{"MSSQL", _MSSQL},
|
||||
{"CronJobId", oGuid},
|
||||
{"CronJobTitle", oTitle}
|
||||
@ -96,14 +96,14 @@ Public Class Scheduler
|
||||
|
||||
Await _Scheduler.ScheduleJob(oInitJob, oInitTrigger)
|
||||
|
||||
_Logger.Debug("Scheduled a new job for Cron Job [{0}]", oTitle)
|
||||
Logger.Debug("Scheduled a new job for Cron Job [{0}]", oTitle)
|
||||
Next
|
||||
Else
|
||||
_Logger.Warn("CronJobs could not be fetched!")
|
||||
Logger.Warn("CronJobs could not be fetched!")
|
||||
End If
|
||||
Catch ex As Exception
|
||||
_Logger.Error(ex)
|
||||
_Logger.Warn("Unexpected Error while setting up scheduler: " & ex.Message)
|
||||
Logger.Error(ex)
|
||||
Logger.Warn("Unexpected Error while setting up scheduler: " & ex.Message)
|
||||
End Try
|
||||
End Sub
|
||||
Public Async Function GetCronJobs() As Task(Of DataTable)
|
||||
@ -131,37 +131,4 @@ Public Class Scheduler
|
||||
Public Async Sub [Stop]()
|
||||
Await _Scheduler.Shutdown()
|
||||
End Sub
|
||||
|
||||
Private Class LogProvider
|
||||
Implements ILogProvider
|
||||
|
||||
Private _Logger As Modules.Logging.Logger
|
||||
|
||||
Public Sub New(Logger As DigitalData.Modules.Logging.Logger)
|
||||
MyBase.New()
|
||||
_Logger = Logger
|
||||
End Sub
|
||||
|
||||
Public Function OpenNestedContext(message As String) As IDisposable Implements ILogProvider.OpenNestedContext
|
||||
Throw New NotImplementedException()
|
||||
End Function
|
||||
|
||||
Public Function OpenMappedContext(key As String, value As Object, Optional destructure As Boolean = False) As IDisposable Implements ILogProvider.OpenMappedContext
|
||||
Throw New NotImplementedException()
|
||||
End Function
|
||||
|
||||
Private Function GetLogger(name As String) As Logging.Logger Implements ILogProvider.GetLogger
|
||||
Return Function(level, func, exception, parameters)
|
||||
If exception IsNot Nothing Then
|
||||
_Logger.Error(exception)
|
||||
ElseIf level >= LogLevel.Debug AndAlso func IsNot Nothing Then
|
||||
_Logger.Debug(func(), parameters)
|
||||
ElseIf level >= LogLevel.Info AndAlso func IsNot Nothing Then
|
||||
_Logger.Info(func(), parameters)
|
||||
End If
|
||||
|
||||
Return True
|
||||
End Function
|
||||
End Function
|
||||
End Class
|
||||
End Class
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user