private static void ValidationJobWorker(object state) { ValidationJobState jobState = (ValidationJobState)state; try { // start validation job workflow jobState.RuleEngine.Validate(); } catch (Exception ex) { if (!RuleEngine.Common.ExceptionHelper.IsCatchableExceptionType(ex)) { throw; } MarkJobAsCompletedInError(jobState.JobId); if (ex is SystemException) { throw; } } finally { workerPool.Release(); } }
/// <summary>Initialize a new instance ValidationJobState</summary> /// <param name="ruleEngine">Rule engine</param> /// <param name="jobId">Guid</param> private void InitJobState(RuleEngineWrapper ruleEngine, Guid jobId) { var jobState = new ValidationJobState(); jobState.RuleEngine = ruleEngine; jobState.JobId = jobId; this.jobStates.Add(jobState); }
/// <summary>Enqueue job</summary> /// <param name="jobState">ValidationJobState for enqueue</param> public static void EnqueueJob(ValidationJobState jobState) { jobQueue.Add(jobState); }