Esempio n. 1
0
        public async Task <ReturnT> Execute(JobMessage job)
        {
            var handler = await _handlerProvider.GetInstanceAsync(job.ExecutorHandler);

            if (handler == null)
            {
                return(ReturnT.Failed($"没有找到名为{job.ExecutorHandler}的JobHandler"));
            }

            // if killed
            if (job.Status == JobStatus.Killed)
            {
                return(ReturnT.Failed($"任务已被终止,id:{job.Id}, reason: {job.Reason}, logId: {job.LogId}"));
            }

            job.Run();

            try
            {
                return(await handler.Execute(new JobExecuteContext(job.Id, job.ExecutorParams)));
            }
            catch (Exception e)
            {
                _logger.LogError(e, "xxljob执行任务错误");
                return(ReturnT.Failed(e.Message));
            }
        }