09-01-2023
This commit is contained in:
@@ -48,7 +48,7 @@ namespace ECM.JobRunner.Web.Data
|
||||
|
||||
public class JobHistory
|
||||
{
|
||||
public List<StatusItem> items;
|
||||
public List<StatusItem>? items;
|
||||
public int total;
|
||||
public int success;
|
||||
public int failed;
|
||||
|
||||
@@ -10,9 +10,9 @@
|
||||
<div class="col-2">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<form>
|
||||
<legend>Filter</legend>
|
||||
<legend>Filter</legend>
|
||||
|
||||
<form>
|
||||
<select class="form-select" aria-label="Default select example" value="@dateFilter" @oninput="DateFilterChanged">
|
||||
<option selected>Please select a value..</option>
|
||||
<option value="1">1 hour</option>
|
||||
@@ -192,4 +192,4 @@
|
||||
|
||||
return filtered;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,28 +1,36 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<system.diagnostics>
|
||||
<sources>
|
||||
<source name="System.ServiceModel" switchValue="Warning" propagateActivity="true">
|
||||
<listeners>
|
||||
<add name="xml"/>
|
||||
<add name="xml" />
|
||||
</listeners>
|
||||
</source>
|
||||
<source name="System.ServiceModel.MessageLogging">
|
||||
<listeners>
|
||||
<add name="xml"/>
|
||||
<add name="xml" />
|
||||
</listeners>
|
||||
</source>
|
||||
</sources>
|
||||
<sharedListeners>
|
||||
<add name="xml" type="System.Diagnostics.XmlWriterTraceListener" initializeData="E:\LogFiles\ECMJobRunner.svclog"/>
|
||||
<add name="xml" type="System.Diagnostics.XmlWriterTraceListener" initializeData="E:\LogFiles\ECMJobRunner.svclog" />
|
||||
</sharedListeners>
|
||||
</system.diagnostics>
|
||||
<system.serviceModel>
|
||||
<diagnostics wmiProviderEnabled="true">
|
||||
<messageLogging logEntireMessage="true" logMalformedMessages="false" logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="false" maxMessagesToLog="3000" maxSizeOfMessageToLog="2000"/>
|
||||
<messageLogging logEntireMessage="true" logMalformedMessages="false" logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="false" maxMessagesToLog="3000" maxSizeOfMessageToLog="2000" />
|
||||
</diagnostics>
|
||||
</system.serviceModel>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2"/>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
|
||||
</startup>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.1" newVersion="4.0.1.1" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
</configuration>
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
<AssemblyName>ECM.JobRunner.Windows</AssemblyName>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<MyType>Console</MyType>
|
||||
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||
<Deterministic>true</Deterministic>
|
||||
<TargetFrameworkProfile />
|
||||
@@ -82,16 +82,32 @@
|
||||
<HintPath>..\packages\NLog.5.1.0\lib\net46\NLog.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Quartz, Version=3.5.0.0, Culture=neutral, PublicKeyToken=f6b8c98a402cc8a4, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Quartz.3.5.0\lib\net462\Quartz.dll</HintPath>
|
||||
<HintPath>..\packages\Quartz.3.5.0\lib\net472\Quartz.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.ComponentModel.DataAnnotations" />
|
||||
<Reference Include="System.Configuration" />
|
||||
<Reference Include="System.Configuration.Install" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Deployment" />
|
||||
<Reference Include="System.Diagnostics.DiagnosticSource, Version=4.0.5.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Diagnostics.DiagnosticSource.4.7.1\lib\net46\System.Diagnostics.DiagnosticSource.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.IdentityModel" />
|
||||
<Reference Include="System.IO.Compression" />
|
||||
<Reference Include="System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Numerics" />
|
||||
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.0.4.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.4.5.3\lib\net461\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Runtime.Remoting" />
|
||||
<Reference Include="System.Runtime.Serialization" />
|
||||
<Reference Include="System.ServiceModel" />
|
||||
|
||||
@@ -94,7 +94,6 @@ Namespace Scheduler
|
||||
End Function
|
||||
|
||||
Private Async Sub ScheduleJobs()
|
||||
|
||||
Logger.Info("Loading [{0}] Job Definitions..", State.JobDefinitions.Count)
|
||||
|
||||
For Each oJob In State.JobDefinitions
|
||||
@@ -109,11 +108,11 @@ Namespace Scheduler
|
||||
Select Case pJob.TypeId
|
||||
Case JOB_TYPE_IMPORT
|
||||
Dim oJobConfig = BuildJobConfig(Of Jobs.FileImportJob)(pJob)
|
||||
Await ScheduleJob(Of Jobs.FileImportJob)(oJobConfig)
|
||||
Await ScheduleJob(Of Jobs.FileImportJob)(oJobConfig, pStartManually)
|
||||
|
||||
Case JOB_TYPE_INDEX
|
||||
Dim oJobConfig = BuildJobConfig(Of Jobs.FileIndexJob)(pJob)
|
||||
Await ScheduleJob(Of Jobs.FileIndexJob)(oJobConfig)
|
||||
Await ScheduleJob(Of Jobs.FileIndexJob)(oJobConfig, pStartManually)
|
||||
|
||||
Case Else
|
||||
Logger.Warn("Job for TypeId [{0}] is not implemented!", pJob.TypeId)
|
||||
@@ -182,25 +181,20 @@ Namespace Scheduler
|
||||
|
||||
Private Async Function DoScheduleJobWithoutDelay(Of T As IJob)(pJobConfig As JobConfig) As Task
|
||||
Dim oJobName As String = GetJobName(pJobConfig)
|
||||
Dim oJobData As JobDataMap = BuildJobData(pJobConfig)
|
||||
Dim oJob As IJobDetail = BuildJob(Of T)(pJobConfig, oJobData)
|
||||
|
||||
Dim oTriggerName As String = GetTriggerName(pJobConfig)
|
||||
Dim oNoDelayTrigger = TriggerBuilder.Create().
|
||||
WithIdentity(oTriggerName & "-NO-DELAY").
|
||||
StartAt(DateBuilder.FutureDate(10, IntervalUnit.Second)).
|
||||
Build()
|
||||
|
||||
Logger.Info("Job {0} will start in 10 Seconds.", oJobName)
|
||||
Await Scheduler.ScheduleJob(oJob, oNoDelayTrigger)
|
||||
Logger.Info("Job [{0}] will start now.", oJobName)
|
||||
Await Scheduler.TriggerJob(New JobKey(oJobName))
|
||||
End Function
|
||||
|
||||
Private Function BuildJob(Of T As IJob)(pJobConfig As JobConfig, pJobData As JobDataMap) As IJobDetail
|
||||
Dim oJobName = GetJobName(pJobConfig)
|
||||
Return JobBuilder.Create(Of T)().
|
||||
Dim oJob = JobBuilder.Create(Of T)().
|
||||
WithIdentity(pJobConfig.Name).
|
||||
UsingJobData(pJobData).
|
||||
StoreDurably().
|
||||
Build()
|
||||
|
||||
Return oJob
|
||||
End Function
|
||||
|
||||
Private Function BuildTrigger(pJobConfig As JobConfig) As ITrigger
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
Imports ECM.JobRunner.Windows.Scheduler.Jobs
|
||||
Imports Quartz
|
||||
Imports Quartz
|
||||
Imports System.Text.RegularExpressions
|
||||
Imports DigitalData.Modules.Filesystem
|
||||
Imports ECM.JobRunner.Common
|
||||
Imports FxResources.System
|
||||
|
||||
Namespace Scheduler.Jobs
|
||||
|
||||
@@ -14,7 +12,7 @@ Namespace Scheduler.Jobs
|
||||
Private FileEx As File
|
||||
|
||||
Public Function Execute(context As IJobExecutionContext) As Task Implements IJob.Execute
|
||||
Dim oArgs = MyBase.InitializeJob(context)
|
||||
Dim oArgs = InitializeJob(context)
|
||||
|
||||
Try
|
||||
FileEx = New File(LogConfig)
|
||||
@@ -46,14 +44,14 @@ Namespace Scheduler.Jobs
|
||||
|
||||
LogInfo("{0} files found in source directory {1}", oFileNames.Count.ToString, oProfile.SourceFolder)
|
||||
|
||||
' - [ ] Process Rules, build list of files and indexes
|
||||
' - [x] Process Rules, build list of files and indexes
|
||||
' - [x] Process Regex to filter out files
|
||||
' - [x] Check time to filter out files
|
||||
' - [ ] (Check if files can be accessed)
|
||||
' - [ ] Check if backup is needed and backup files
|
||||
' - [x] Import into windream
|
||||
' - [ ] Create original subfolder structure
|
||||
' - [ ] Create DateTime Subfolders
|
||||
' - [x] Create DateTime Subfolders
|
||||
' - [x] Check if file exists and version
|
||||
' - [x] Do import
|
||||
' - [ ] Check for filesize 0
|
||||
@@ -186,7 +184,7 @@ Namespace Scheduler.Jobs
|
||||
|
||||
If pProfile.SubfolderDateFormat <> String.Empty Then
|
||||
' ToString formatter needs the backslashes escaped again.
|
||||
Dim oSubfolders = Now.ToString(pProfile.SubfolderDateFormat.Replace())
|
||||
Dim oSubfolders = Now.ToString(pProfile.SubfolderDateFormat.Replace("\", "\\"))
|
||||
Dim oFullPath = IO.Path.Combine(pProfile.TargetFolder, oSubfolders)
|
||||
|
||||
Logger.Debug("Creating subfolder [{0}] in Target path [{1}]", oSubfolders, pProfile.TargetFolder)
|
||||
@@ -201,7 +199,7 @@ Namespace Scheduler.Jobs
|
||||
|
||||
' Generate new filepath and stream file
|
||||
Dim oFileName = IO.Path.GetFileName(pFile.FilePath)
|
||||
Dim oNewFilePath As String = IO.Path.Combine(pProfile.TargetFolder, oFileName)
|
||||
Dim oNewFilePath As String = IO.Path.Combine(oFinalDirectoryPath, oFileName)
|
||||
Dim oVersionedFilePath = GetVersionedWindreamPath(oNewFilePath)
|
||||
|
||||
If Windream.NewFileStream(pFile.FilePathOriginal, oVersionedFilePath, pProfile.ObjectTypeName) = False Then
|
||||
|
||||
@@ -17,7 +17,9 @@ Public Class RunJob
|
||||
Public Function Run(pData As RunJobRequest) As RunJobResponse
|
||||
' This is calling the async function ScheduleJob synchronous, so that we can return a value to the caller
|
||||
' This means that the job might or might not be scheduled when this method returns.
|
||||
#Disable Warning BC42358 ' Da auf diesen Aufruf nicht gewartet wird, wird die Ausführung der aktuellen Methode vor Abschluss des Aufrufs fortgesetzt.
|
||||
Scheduler.ScheduleJob(pData.JobId)
|
||||
#Enable Warning BC42358 ' Da auf diesen Aufruf nicht gewartet wird, wird die Ausführung der aktuellen Methode vor Abschluss des Aufrufs fortgesetzt.
|
||||
|
||||
Return New RunJobResponse()
|
||||
End Function
|
||||
|
||||
@@ -2,7 +2,12 @@
|
||||
<packages>
|
||||
<package id="Microsoft.Extensions.Logging.Abstractions" version="2.1.1" targetFramework="net462" />
|
||||
<package id="NLog" version="5.1.0" targetFramework="net462" />
|
||||
<package id="Quartz" version="3.5.0" targetFramework="net462" />
|
||||
<package id="Quartz" version="3.5.0" targetFramework="net48" />
|
||||
<package id="System.Buffers" version="4.5.1" targetFramework="net48" />
|
||||
<package id="System.Diagnostics.DiagnosticSource" version="4.7.1" targetFramework="net48" />
|
||||
<package id="System.Memory" version="4.5.4" targetFramework="net48" />
|
||||
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net48" />
|
||||
<package id="System.Runtime.CompilerServices.Unsafe" version="4.5.3" targetFramework="net48" />
|
||||
<package id="System.ServiceModel.NetTcp" version="4.10.0" targetFramework="net462" />
|
||||
<package id="System.ServiceModel.Primitives" version="4.10.0" targetFramework="net462" />
|
||||
</packages>
|
||||
Reference in New Issue
Block a user