ff4j Flipping Strategies

基于Flipping Strategies 我们可以更好的控制feature,这样对于系统就可以有更灵活的管理
当然策略的使用还是比较简单的,同时我们也可以自己扩展策略

策略配置

  • 参考实现
 
public class OfficeHoursFlippingStrategy extends AbstractFlipStrategy {
 /** Start Hour. */ 
 private int start = 0;
 /** Hend Hour. */
 private int end = 0;
 /** {@inheritDoc} */
 @Override
 public void init(String featureName, Map<String, String> initValue) { 
   super.init(featureName, initValue);
   assertRequiredParameter("startDate");
   assertRequiredParameter("endDate");
   start = new Integer(initValue.get("startDate")); 
   end = new Integer(initValue.get("endDate"));
}
 /** {@inheritDoc} */
 @Override
 public boolean evaluate(String fName, FeatureStore fStore, FlippingExecutionContext ctx) { 
   int currentHour = Calendar.getInstance().get(Calendar.HOUR_OF_DAY);
   return (currentHour >= start && currentHour < end);
 }
}
  • 参考配置
<?xml version="1.0" encoding="UTF-8" ?>
<features>
 <feature uid="sayHello" enable="true" description="some desc">
  <flipstrategy class="org.ff4j.sample.strategy.OfficeHoursFlippingStrategy" > 
  <param name="startDate">9</param>
  <param name="endDate">18</param>
  </flipstrategy>
 </feature>
</features>

说明

一些内置策略的详细使用,可以参考github 文档

参考资料

https://github.com/ff4j/ff4j/wiki/Flipping-Strategies

原文地址:https://www.cnblogs.com/rongfengliang/p/12739860.html