public async Task ProcessBatch(Job batchjob)
        {
            _logger.LogInformation("batchjob {0} called", batchjob.JobId);
            batchjob.StartDate = DateTime.Now;
            batchjob.JobState  = JobState.Started;
            if (await _jobManagementService.UpdateJob(batchjob) == 0)
            {
                return;
            }
            if (await _jobManagementService.EnterLog(batchjob.JobId, String.Format("batchjob {0} started", batchjob.JobId)) == 0)
            {
                return;
            }

            _logger.LogInformation("batchjob {0} updated", batchjob.JobId);
            // do work
            _logger.LogInformation("batchjob {0} phase1", batchjob.JobId);
            ConsumeCPU(20, 5);

            await _jobManagementService.EnterLog(batchjob.JobId, String.Format("batchjob {0} phase2", batchjob.JobId));

            // do work
            _logger.LogInformation("batchjob {0} phase2", batchjob.JobId);
            ConsumeCPU(80, 5);
            await _jobManagementService.EnterLog(batchjob.JobId, String.Format("batchjob {0} phase 3", batchjob.JobId));

            // do work
            _logger.LogInformation("batchjob {0} phase3", batchjob.JobId);
            ConsumeCPU(20, 5);
            await _jobManagementService.EnterLog(batchjob.JobId, String.Format("batchjob {0} phase 4", batchjob.JobId));

            // do work
            _logger.LogInformation("batchjob {0} phase4", batchjob.JobId);
            Thread.Sleep(5000);

            _logger.LogInformation("batchjob {0} phase5", batchjob.JobId);
            ConsumeCPU(20, 5);

            _logger.LogInformation("batchjob {0} phase6", batchjob.JobId);
            ConsumeCPU(40, 5);

            _logger.LogInformation("batchjob {0} phase7", batchjob.JobId);
            ConsumeCPU(80, 5);

            _logger.LogInformation("batchjob {0} phase8", batchjob.JobId);
            ConsumeCPU(20, 5);

            _logger.LogInformation("batchjob {0} ended", batchjob.JobId);

            batchjob.StopDate = DateTime.Now;
            batchjob.JobState = JobState.Ended;
            await _jobManagementService.UpdateJob(batchjob);

            await _jobManagementService.EnterLog(batchjob.JobId, String.Format("batchjob {0} stopped", batchjob.JobId));
        }
        public async Task ProcessBulk(Job bulkjob)
        {
            _logger.LogInformation("bulkjob {0} called", bulkjob.JobId);
            bulkjob.StartDate = DateTime.Now;
            bulkjob.JobState = JobState.Started;
            if (await _jobManagementService.UpdateJob(bulkjob) == 0) return;
            if (await _jobManagementService.EnterLog(bulkjob.JobId, String.Format("bulkjob {0} started", bulkjob.JobId)) == 0) return;

            _logger.LogInformation("bulkjob {0} updated", bulkjob.JobId);
            // do work
            Thread.Sleep(5000);
            _logger.LogInformation("bulkjob {0} ended", bulkjob.JobId);

            bulkjob.StopDate = DateTime.Now;
            bulkjob.JobState = JobState.Ended;
            await _jobManagementService.UpdateJob(bulkjob);
            await _jobManagementService.EnterLog(bulkjob.JobId, String.Format("bulkjob {0} stopped", bulkjob.JobId));
        }