public async Task <IJobId> ScheduleNowAsync(IJob job, CancellationToken cancellationToken) { if (job == null) { throw new ArgumentNullException(nameof(job)); } var jobDefinition = _jobDefinitionService.GetDefinition(job.GetType()); try { var json = _jsonSerializer.Serialize(job); if (_logger.IsEnabled(Microsoft.Extensions.Logging.LogLevel.Trace)) { _logger.LogTrace($"Executing job '{jobDefinition.Name}' v{jobDefinition.Version}: {json}"); } await _jobRunner.ExecuteAsync(jobDefinition.Name, jobDefinition.Version, json, cancellationToken).ConfigureAwait(false); } catch (Exception e) { // We want the InstantJobScheduler to behave as an out-of-process scheduler, i.e., doesn't // throw exceptions directly related to the job execution _logger.LogError(e, $"Execution of job '{jobDefinition.Name}' v{jobDefinition.Version} failed!"); } return(JobId.New); }
public async Task <IJobId> ScheduleNowAsync(IJob job, CancellationToken cancellationToken) { var jobDefinition = _jobDefinitionService.GetJobDefinition(job.GetType()); var json = _jsonSerializer.Serialize(job); _log.Verbose(() => $"Executing job '{jobDefinition.Name}' v{jobDefinition.Version}: {json}"); // Don't schedule, just execute... await _jobRunner.ExecuteAsync(jobDefinition.Name, jobDefinition.Version, json, cancellationToken).ConfigureAwait(false); return(JobId.New); }
public async Task <IJobId> ScheduleNowAsync(IJob job, CancellationToken cancellationToken) { if (job == null) { throw new ArgumentNullException(nameof(job)); } var jobDefinition = _jobDefinitionService.GetDefinition(job.GetType()); try { var json = _jsonSerializer.Serialize(job); _logger.LogDebug( "Executing job {JobName} v{JobVersion}: {Json}", jobDefinition.Name, jobDefinition.Version, json); await _jobRunner.ExecuteAsync(jobDefinition.Name, jobDefinition.Version, json, cancellationToken).ConfigureAwait(false); } catch (Exception e) { // We want the InstantJobScheduler to behave as an out-of-process scheduler, i.e., doesn't // throw exceptions directly related to the job execution _logger.LogError( e, "Execution of job {JobName} v{JobVersion} failed due to {ExceptionType}: {ExceptionMessage}", jobDefinition.Name, jobDefinition.Version, e.GetType().PrettyPrint(), e.Message); } return(JobId.New); }
public Task ExecuteAsync(string displayName, string jobName, int version, string job) { return(_jobRunner.ExecuteAsync(jobName, version, job, CancellationToken.None)); }