public async Task <string> ExclusiveCreateAsync(string name, IContextParameters @params) { var userId = _userResolver.GetUserId(); if (string.IsNullOrEmpty(userId)) { throw new ArgumentNullException(nameof(userId)); } if (await _lockService.LockAsync(name) == false) { await _lockService.UnlockAsync(name); //return null; } var job = await _jobRepository.AddAsync(new Job(name, userId, @params)); _jobRegistory.AddJob(job); _jobRegistory.Enqueue(job.Id); return(job.Id); }
public async Task <long?> ExclusiveCreateAsync <TParams>(string name, TParams @params) { var userId = _userResolver.GetUserId(); if (string.IsNullOrEmpty(userId)) { throw new ArgumentNullException(nameof(userId)); } if (await _lockService.LockAsync(name) == false) { return(null); } var job = new Job(name, userId, @params); job.Id = await _jobRepository.AddAsync(job); _jobRegistory.AddJob(job.Id, job); _jobRegistory.Enqueue(job.Id); return(job.Id); }