public async Task SortIntsAsync(string jobId) { using (var scope = _serviceScopeFactory.CreateScope()) { _context = scope.ServiceProvider.GetService <JobSchedulerContext>(); try { var workItem = _context.JobsManager.FirstOrDefault(x => x.JobId == jobId.ToString()); workItem.Status = JobStatus.Processing; //Just to mock long running task await Task.Delay(TimeSpan.FromSeconds(30)); if (workItem == null) { return; } var inputArray = JsonConvert.DeserializeObject <List <int> >(workItem.JobItem); inputArray.Sort(); workItem.Status = JobStatus.Completed; workItem.CompletedTime = DateTime.UtcNow; workItem.JobResult = JsonConvert.SerializeObject(inputArray); _context.JobsManager.Update(workItem); _context.SaveChanges(); } catch (Exception ex) { _logger.LogError(ex.Message); } } }
public JobsController(JobSchedulerContext context, ILogger <JobsController> logger, IBackgroundTaskQueue taskQueue, ISort sortService, IMapper mapper) { _context = context; _logger = logger; _taskQueue = taskQueue; _sortService = sortService; _mapper = mapper; }
public DbContext context; //提供IOC注入方式接口 public RepositoryBase(JobSchedulerContext context) { this.context = context; } //测试用