コード例 #1
0
        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);
                }
            }
        }
コード例 #2
0
 public JobsController(JobSchedulerContext context, ILogger <JobsController> logger,
                       IBackgroundTaskQueue taskQueue,
                       ISort sortService,
                       IMapper mapper)
 {
     _context     = context;
     _logger      = logger;
     _taskQueue   = taskQueue;
     _sortService = sortService;
     _mapper      = mapper;
 }
コード例 #3
0
 public DbContext context; //提供IOC注入方式接口
 public RepositoryBase(JobSchedulerContext context)
 {
     this.context = context;
 } //测试用