我有服务于 cron 表达式
public Task DoProcessAsync()
{
return transactionService.CommitAsync(() => DoProcess());
}
private async Task DoProcess()
{
try{...}
catch{logger.logError("error");}
}
但是我知道在这个地方尝试捕获块我不好,因为 Commit 会被接受。我也有
public Task Start()
{
exportCron = CronExtensions
.Cron(sheduleConfiguration.SetCitiesCronExpression)
.Select(x => Observable.FromAsync(() => setCitiesToClientsService.DoProcessAsync()))
.Concat()
.Subscribe();
return Task.FromResult(0);
}
所以也许我可以将方法 catch() 放到这个扩展中?如果是,我该怎么做?
我找到了
.Subscribe(onNext => { }, onError => { logger.LogError("Error"); } );
但是sequnce在出错后停止工作,但必须继续。有一些提议吗?