84 lines
2.7 KiB
VB.net
84 lines
2.7 KiB
VB.net
Imports System.Collections.Specialized
|
|
Imports DigitalData.Modules.Base
|
|
Imports DigitalData.Modules.Logging
|
|
Imports EnvelopeGenerator.CommonServices.Jobs
|
|
Imports EnvelopeGenerator.CommonServices.Jobs.FinalizeDocument
|
|
Imports Quartz
|
|
|
|
Public Class Scheduler_FinishEnvelope
|
|
Inherits BaseClass
|
|
|
|
Private Scheduler As IScheduler
|
|
Private ReadOnly ConnectionString As String
|
|
Private ReadOnly LicenseKey As String
|
|
Private Property _pdfBurnerParams As PDFBurnerParams
|
|
|
|
Private Const JobName = "CertificateDocumentJob"
|
|
|
|
Public Sub New(pLogConfig As LogConfig, pConnectionString As String, pLicenseKey As String, pdfBurnerParams As PDFBurnerParams)
|
|
MyBase.New(pLogConfig)
|
|
ConnectionString = pConnectionString
|
|
LicenseKey = pLicenseKey
|
|
_pdfBurnerParams = pdfBurnerParams
|
|
|
|
Dim oLogProvider = New LogProvider(Logger)
|
|
Logging.LogProvider.SetCurrentLogProvider(oLogProvider)
|
|
End Sub
|
|
|
|
Public Async Function Start(pInterval As Integer) As Task
|
|
Try
|
|
Logger.Debug("Starting Scheduler Finish Envelope..")
|
|
|
|
Dim oProperties As New NameValueCollection()
|
|
|
|
Scheduler = Await SchedulerBuilder.Create(oProperties).
|
|
UseDefaultThreadPool(Sub(x) x.MaxConcurrency = 5).
|
|
BuildScheduler()
|
|
|
|
Dim oJobKey = New JobKey(JobName)
|
|
Dim oJobData = New JobDataMap() From {
|
|
{Domain.Constants.GDPICTURE, LicenseKey},
|
|
{Domain.Constants.LOGCONFIG, LogConfig},
|
|
{Domain.Constants.DATABASE, ConnectionString},
|
|
{Domain.Constants.PDF_BURNER_PARAMS, _pdfBurnerParams}
|
|
}
|
|
|
|
Logger.Debug("Initialized Job [{0}]", JobName)
|
|
|
|
Dim oJob As IJobDetail = JobBuilder.Create(Of FinalizeDocumentJob).
|
|
UsingJobData(oJobData).
|
|
WithIdentity(oJobKey).
|
|
Build()
|
|
|
|
Dim oTrigger As ITrigger = TriggerBuilder.Create().
|
|
ForJob(oJobKey).
|
|
WithIdentity($"{JobName}-trigger").
|
|
WithSimpleSchedule(Sub(s) s.
|
|
RepeatForever().
|
|
WithIntervalInMinutes(pInterval)).
|
|
StartNow().
|
|
Build()
|
|
|
|
Logger.Debug("Initialized Trigger")
|
|
|
|
Await Scheduler.ScheduleJob(oJob, oTrigger)
|
|
|
|
Logger.Debug("Job scheduled.")
|
|
|
|
Await Scheduler.Start()
|
|
|
|
Logger.Info("Scheduler started!")
|
|
Catch ex As Exception
|
|
Logger.Error(ex)
|
|
End Try
|
|
|
|
End Function
|
|
|
|
Public Async Function [Stop]() As Task
|
|
Logger.Info("Stopping scheduler..")
|
|
Await Scheduler.Shutdown()
|
|
Logger.Info("Scheduler stopped!")
|
|
End Function
|
|
|
|
End Class
|