限制每个时间段的作业数 运行
Restricting number of jobs run per time period
我有一个应用程序可以对从呼叫者收到的请求进行排队。每个请求都会导致对外部 Web 服务的调用,该服务对我们可以对其进行的调用次数有限制。例如。我们每分钟只能打 X 次电话。
每个请求都添加到 Quartz.NET 调度程序,我需要能够以不违反外部 Web 服务条款的方式安排作业。
我考虑过以某种方式跟踪最后一次将作业添加到调度程序并确保作业间隔 N 毫秒触发(即每个进入的作业都设置为在 LastJobTime + N 触发),其中 N = (60000/X)。但是,我不确定这是否合理。
有没有更好的方法来完成这个?如果没有,我必须自己跟踪 LastJobTime 还是可以 Quartz.NET 在这里提供一些帮助?
谢谢
您可以创建一个实现 ITriggerListener
接口的 TriggerListener。 ITriggerListener
使您可以否决工作。只需计算您在这一分钟内拨打了多少个电话,如果您超过了您的通话次数,则否决该工作。
我有一个应用程序可以对从呼叫者收到的请求进行排队。每个请求都会导致对外部 Web 服务的调用,该服务对我们可以对其进行的调用次数有限制。例如。我们每分钟只能打 X 次电话。
每个请求都添加到 Quartz.NET 调度程序,我需要能够以不违反外部 Web 服务条款的方式安排作业。
我考虑过以某种方式跟踪最后一次将作业添加到调度程序并确保作业间隔 N 毫秒触发(即每个进入的作业都设置为在 LastJobTime + N 触发),其中 N = (60000/X)。但是,我不确定这是否合理。
有没有更好的方法来完成这个?如果没有,我必须自己跟踪 LastJobTime 还是可以 Quartz.NET 在这里提供一些帮助?
谢谢
您可以创建一个实现 ITriggerListener
接口的 TriggerListener。 ITriggerListener
使您可以否决工作。只需计算您在这一分钟内拨打了多少个电话,如果您超过了您的通话次数,则否决该工作。