public async Task <Job> RequestNewJobAsync(TInput input, CancellationToken cancel) { var identifier = CreateJobIdentifier(Guid.NewGuid().ToString("N")); var header = new JobHeader(identifier) { State = JobState.Created, Created = DateTimeOffset.UtcNow }; var job = new Job(header) { Input = _inputSerializer.Serialize(input) }; await _repository.CreateAsync(job, cancel); using var publisher = _queue.GetPublisher(CreatePublisherConfiguration()); await publisher.EnqueueAsync(job, cancel); return(job); }