要重新安排计划的作业,我目前正在删除以前的作业,然后在事务中安排一个新的作业,因此如果计划失败,它会回滚删除:
using (var transaction = new TransactionScope(TransactionScopeOption.Required))
{
BackgroundJob.Delete(jobId);
BackgroundJob.Schedule(...);
}
这涉及将原始参数存储在某处,以便我可以使用原始参数重新安排时间。
我想知道执行以下操作是否有任何后果:
new BackgroundJobClient().ChangeState(jobId, new ScheduledState(timespan), ScheduledState.StateName);
这样就不需要保留原来的工作参数并且是事务性的。