我有一个应用程序对从调用者收到的请求进行排队。每个请求都会导致调用外部Web服务,该服务限制了我们可以对其进行的调用次数。例如。我们每分钟只能拨打X电话。
每个请求都被添加到Quartz.NET调度程序中,我需要能够以不违反外部Web服务条款的方式安排作业。
我考虑过以某种方式跟踪上次将作业添加到调度程序并确保作业被触发N毫秒(即每个作业进入设置为在LastJobTime + N处触发),其中N = (60000 / X)。但是,我不确定这是否合理。
有没有更好的方法来实现这一目标?如果没有,我必须自己跟踪LastJobTime,或者Quartz.NET能在这里提供一些帮助吗?
由于
答案 0 :(得分:1)
您可以创建实现ITriggerListener
接口的TriggerListener。 ITriggerListener
让你有可能否决一份工作。只计算你在这一分钟打了多少电话,如果你打电话给你,请否决你的工作。