我正在创建一个 webservice+servicebus 项目,用户可以在其中执行类似的操作
public void ExecuteLongProcess(DateTime fromDate,string aggregateId){}
此方法立即返回,但通过总线发送操作请求。
当另一个用户已经在运行时,当多个用户在同一个 aggregateId 上请求长进程时,我的问题就开始了。
我正在考虑的解决方案是一个连续运行的任务,并寻找一个Queue<LongProcessTask>
必须执行的操作,所以我一次只运行一个进程,或者如果不同的聚合 ID,未来的实现将是多个进程。
这样我就不会在同一个聚合上重叠长时间运行的进程。
其他想法?