fix:微信推送接入频控

This commit is contained in:
zhongzb
2023-07-06 23:08:06 +08:00
parent 4ffb15d48f
commit 65f8735d28
3 changed files with 44 additions and 9 deletions

View File

@@ -88,6 +88,17 @@ public abstract class AbstractFrequencyControlService<K extends FrequencyControl
T get() throws Throwable;
}
@FunctionalInterface
public interface Executor {
/**
* Gets a result.
*
* @return a result
*/
void execute() throws Throwable;
}
/**
* 是否达到限流阈值 子类实现 每个子类都可以自定义自己的限流逻辑判断
*

View File

@@ -28,6 +28,14 @@ public class FrequencyControlUtil {
return frequencyController.executeWithFrequencyControl(frequencyControl, supplier);
}
public static <K extends FrequencyControlDTO> void executeWithFrequencyControl(String strategyName, K frequencyControl, AbstractFrequencyControlService.Executor executor) throws Throwable {
AbstractFrequencyControlService<K> frequencyController = FrequencyControlStrategyFactory.getFrequencyControllerByName(strategyName);
frequencyController.executeWithFrequencyControl(frequencyControl, () -> {
executor.execute();
return null;
});
}
/**
* 多限流策略的编程式调用方法调用方法