示例#1
0
        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(); });
            }
        }
示例#2
0
        public PumpMain(EventLog serviceEventLog = null)
        {
            _ServiceMode  = ServiceMode.Standby;
            _MainDbAccess = DbPackage.CreateConnection();

            PumpConfig.AppSettingsInDb = _MainDbAccess.GetServiceConfig();

            _ParallelJobs    = new List <ParallelJob>();
            _Synchronizer    = new PumpSynchronizer();
            _ServiceEventLog = serviceEventLog;
        }