I am trying to call the webapi method from my quartz.net schedule job. I'm not sure if I am doing this right? Can someone help if this is the right way or is there a better approach?
MethodRepository.cs
public async Task<IEnumerable<ResultClass>> GetResult(string queryCriteria) { return await _httpClient.Get(queryCriteria); }
Quartz quest:
public async void Execute(IJobExecutionContext context) { var results= await _repo.GetResult(); }
shared httpclient:
public async Task<IEnumerable<T>> Get(string queryCriteria) { _addressSuffix = _addressSuffix + queryCriteria; var responseMessage = await _httpClient.GetAsync(_addressSuffix); responseMessage.EnsureSuccessStatusCode(); return await responseMessage.Content.ReadAsAsync<IEnumerable<T>>(); }
But the quartz documentation says that I cannot use the asynchronous input method in the quartz job. How can I use the Web API method?
Can I change the quartz task execution method as:
public void Execute(IJobExecutionContext context) { var result = _repo.GetResult().Result; }
source share