【发布时间】:2016-07-14 15:29:28
【问题描述】:
我正在尝试从我的 quartz.net 计划作业中调用 webapi 方法。我不确定我的做法是否正确?如果这是正确的方法或有更好的方法可用,任何人都可以提供帮助吗?
MethodRepository.cs
public async Task<IEnumerable<ResultClass>> GetResult(string queryCriteria)
{
return await _httpClient.Get(queryCriteria);
}
石英作业:
public async void Execute(IJobExecutionContext context)
{
var results= await _repo.GetResult();
}
通用 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>>();
}
但石英文档说我不能在石英作业中使用异步方法。那如何才能使用 Web API 方法呢?
我可以将石英作业执行方法更改为:
public void Execute(IJobExecutionContext context)
{
var result = _repo.GetResult().Result;
}
【问题讨论】:
标签: c# quartz-scheduler quartz.net