public void Run(DbAccess dbAccess, PumpSynchronizer synchronizer) { dbAccess.RunParallelJob(_PJobID, task => { ParallelTask parallelTask = new ParallelTask( task.Field <int>("PJOB_ID"), task.Field <short>("TASK_ID"), task.Field <short>("COMMAND_TIMEOUT") ); switch (parallelTask.TaskID) { case 0: _SuccessCallbackTask = parallelTask; break; case -1: _FailCallbackTask = parallelTask; break; default: _ParallelTasks.Add(parallelTask); break; } }); if (_ParallelTasks.Count > 0) { synchronizer.StartNewTask(() => { ExecuteTasks(); }); } }
public PumpMain(EventLog serviceEventLog = null) { _ServiceMode = ServiceMode.Standby; _MainDbAccess = DbPackage.CreateConnection(); PumpConfig.AppSettingsInDb = _MainDbAccess.GetServiceConfig(); _ParallelJobs = new List <ParallelJob>(); _Synchronizer = new PumpSynchronizer(); _ServiceEventLog = serviceEventLog; }