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\UpdateFileMethod.vb" />
|
||||||
<Compile Include="Methods\IDB\UpdateFile\UpdateFileRequest.vb" />
|
<Compile Include="Methods\IDB\UpdateFile\UpdateFileRequest.vb" />
|
||||||
<Compile Include="Methods\IDB\UpdateFile\UpdateFileResponse.vb" />
|
<Compile Include="Methods\IDB\UpdateFile\UpdateFileResponse.vb" />
|
||||||
|
<Compile Include="Scheduler\LogProvider.vb" />
|
||||||
<Compile Include="Scheduler\Scheduler.vb" />
|
<Compile Include="Scheduler\Scheduler.vb" />
|
||||||
<Compile Include="Scheduler\DatatableJob.vb" />
|
<Compile Include="Scheduler\DatatableJob.vb" />
|
||||||
<Compile Include="Scheduler\JobListener.vb" />
|
<Compile Include="Scheduler\JobListener.vb" />
|
||||||
|
|||||||
@ -9,6 +9,8 @@ Imports Quartz
|
|||||||
Public Class DatatableJob
|
Public Class DatatableJob
|
||||||
Implements IJob
|
Implements IJob
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Private Const COMMAND_SQL_TIMEOUT = 240
|
Private Const COMMAND_SQL_TIMEOUT = 240
|
||||||
|
|
||||||
Private _MSSQL As MSSQLServer
|
Private _MSSQL As MSSQLServer
|
||||||
|
|||||||
@ -202,7 +202,7 @@ Public Class JobListener
|
|||||||
|
|
||||||
_MSSQL.ExecuteNonQuery($"INSERT INTO TBAPPSERV_CRON_DETAIL_HISTORY (DETAIL_ID) VALUES ({oDetailId})")
|
_MSSQL.ExecuteNonQuery($"INSERT INTO TBAPPSERV_CRON_DETAIL_HISTORY (DETAIL_ID) VALUES ({oDetailId})")
|
||||||
Catch ex As Exception
|
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)
|
_Logger.Error(ex)
|
||||||
End Try
|
End Try
|
||||||
End Sub
|
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
|
Imports Quartz.Logging
|
||||||
|
|
||||||
Public Class Scheduler
|
Public Class Scheduler
|
||||||
Private _Factory As StdSchedulerFactory
|
Inherits BaseClass
|
||||||
Private _MSSQL As MSSQLServer
|
|
||||||
Private _Scheduler As IScheduler
|
|
||||||
Private _LogConfig As LogConfig
|
|
||||||
Private _Logger As DigitalData.Modules.Logging.Logger
|
|
||||||
Private _JobListener As JobListener
|
|
||||||
|
|
||||||
Private _Props = New NameValueCollection From {
|
Private ReadOnly _Factory As StdSchedulerFactory
|
||||||
{"quartz.serializer.type", "binary"}
|
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"
|
Private Const JOB_GROUP As String = "DatatableJobs"
|
||||||
|
|
||||||
Public Sub New(LogConfig As LogConfig, MSSQL_ECM As MSSQLServer, TableStore As DataSet)
|
Public Sub New(LogConfig As LogConfig, MSSQL_ECM As MSSQLServer, TableStore As DataSet)
|
||||||
_LogConfig = LogConfig
|
MyBase.New(LogConfig)
|
||||||
_Logger = LogConfig.GetLogger()
|
|
||||||
|
|
||||||
_Factory = New StdSchedulerFactory(_Props)
|
_Factory = New StdSchedulerFactory(_Props)
|
||||||
_MSSQL = MSSQL_ECM
|
_MSSQL = MSSQL_ECM
|
||||||
_JobListener = New JobListener(LogConfig, _MSSQL, TableStore)
|
_JobListener = New JobListener(LogConfig, _MSSQL, TableStore)
|
||||||
|
|
||||||
Logging.LogProvider.SetCurrentLogProvider(New LogProvider(_Logger))
|
Logging.LogProvider.SetCurrentLogProvider(New LogProvider(Logger))
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Public Async Sub Start()
|
Public Async Sub Start()
|
||||||
@ -46,7 +46,7 @@ Public Class Scheduler
|
|||||||
|
|
||||||
Try
|
Try
|
||||||
If oCronjobs IsNot Nothing Then
|
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
|
For Each oRow As DataRow In oCronjobs.Rows
|
||||||
Dim oDefinition As String = oRow.Item("CRON_DEFINITION")
|
Dim oDefinition As String = oRow.Item("CRON_DEFINITION")
|
||||||
@ -60,7 +60,7 @@ Public Class Scheduler
|
|||||||
Dim oInitJob As IJobDetail
|
Dim oInitJob As IJobDetail
|
||||||
|
|
||||||
Dim oJobData As New JobDataMap From {
|
Dim oJobData As New JobDataMap From {
|
||||||
{"LogConfig", _LogConfig},
|
{"LogConfig", LogConfig},
|
||||||
{"MSSQL", _MSSQL},
|
{"MSSQL", _MSSQL},
|
||||||
{"CronJobId", oGuid},
|
{"CronJobId", oGuid},
|
||||||
{"CronJobTitle", oTitle}
|
{"CronJobTitle", oTitle}
|
||||||
@ -96,14 +96,14 @@ Public Class Scheduler
|
|||||||
|
|
||||||
Await _Scheduler.ScheduleJob(oInitJob, oInitTrigger)
|
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
|
Next
|
||||||
Else
|
Else
|
||||||
_Logger.Warn("CronJobs could not be fetched!")
|
Logger.Warn("CronJobs could not be fetched!")
|
||||||
End If
|
End If
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
_Logger.Error(ex)
|
Logger.Error(ex)
|
||||||
_Logger.Warn("Unexpected Error while setting up scheduler: " & ex.Message)
|
Logger.Warn("Unexpected Error while setting up scheduler: " & ex.Message)
|
||||||
End Try
|
End Try
|
||||||
End Sub
|
End Sub
|
||||||
Public Async Function GetCronJobs() As Task(Of DataTable)
|
Public Async Function GetCronJobs() As Task(Of DataTable)
|
||||||
@ -131,37 +131,4 @@ Public Class Scheduler
|
|||||||
Public Async Sub [Stop]()
|
Public Async Sub [Stop]()
|
||||||
Await _Scheduler.Shutdown()
|
Await _Scheduler.Shutdown()
|
||||||
End Sub
|
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
|
End Class
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user