当前位置: 首页 > news >正文

旅游电商网站排名代码库网站

旅游电商网站排名,代码库网站,化工seo顾问,wordpress分配管理员背景: 我们经常会使用到比如数据库中的配置表信息,而我们不希望每次都去查询db,那么我们就想定时把db配置表的数据定时加载到flink的本地内存中,那么如何实现呢? 外部定时器定时加载实现 1.在open函数中进行定时器的…

背景:

我们经常会使用到比如数据库中的配置表信息,而我们不希望每次都去查询db,那么我们就想定时把db配置表的数据定时加载到flink的本地内存中,那么如何实现呢?

外部定时器定时加载实现

1.在open函数中进行定时器的创建和定时加载,这个方法对于所有的RichFunction富函数都适用,包括RichMap,RichFilter,RichSink等,代码如下所示

package wikiedits.schedule;import org.apache.flink.api.common.functions.RichFlatMapFunction;
import org.apache.flink.configuration.Configuration;
import org.apache.flink.util.Collector;
import org.apache.flink.util.ExecutorUtils;import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;public class ScheduleRichMapFunction extends RichFlatMapFunction<String, String> {// 定时任务执行器private transient ScheduledExecutorService scheduledExecutorService;// 本地变量private int threshold;@Overridepublic void open(Configuration parameters) throws Exception {// 1.从db查询数据初始化本地变量
//        threshold = DBManager.SELECTSQL.getConfig("threshold");// 2.使用定时任务更新本地内存的配置信息以及更新本地变量threshold的值scheduledExecutorService = Executors.newScheduledThreadPool(10);scheduledExecutorService.scheduleWithFixedDelay(() -> {// 2.1 定时任务更新本地内存配置项// List<ConfigEntity> configList = DBManager.SELECTSQL.getConfigs();
//            for(ConfigEntity entity : configList){ConfigEntityLocalCache.getInstance().update("key", "value");
//            }// 2.2 更新本地变量threshold的值
//            threshold = DBManager.SELECTSQL.getConfig("threshold");}, 0, 100, TimeUnit.SECONDS);}@Overridepublic void flatMap(String value, Collector<String> out) throws Exception {}@Overridepublic void close() throws Exception {ExecutorUtils.gracefulShutdown(100, TimeUnit.SECONDS, scheduledExecutorService);}}//本地缓存实现
package wikiedits.schedule;import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;/*** 保存Config信息的本地缓存 ---定时同步DB配置表的数据*/
public class ConfigEntityLocalCache {private static volatile ConfigEntityLocalCache instance = new ConfigEntityLocalCache();/*** 获取本地缓存实例*/public static ConfigEntityLocalCache getInstance() {return instance;}/** 缓存内存配置项 */private static Cache<String, String> configCache =CacheBuilder.newBuilder().initialCapacity(50).maximumSize(500).build();/*** 更新本地缓存数据*/public boolean update(String key, String value){configCache.put(key, value);return true;}/*** 更新本地缓存数据*/public  String getByKey(String key){return configCache.getIfPresent(key);}}

2.在静态类中通过static语句块创建定时器并定时加载,代码如下

package wikiedits.schedule;import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;/*** 静态类定时加载DB配置表到本地内存中*/
public class StaticLoadUtil {// 定时任务执行器private static transient ScheduledExecutorService scheduledExecutorService;public static final Cache<String, String> configCache =CacheBuilder.newBuilder().initialCapacity(50).maximumSize(500).build();// 通过定时执行器定时同步本地缓存和DB配置表static {scheduledExecutorService = Executors.newScheduledThreadPool(10);scheduledExecutorService.scheduleWithFixedDelay(() -> {// 2.1 定时任务更新本地内存配置项// List<ConfigEntity> configList = DBManager.SELECTSQL.getConfigs();// for(ConfigEntity entity : configList){configCache.put("key", "value");// }// 2.2 更新本地变量threshold的值// threshold = DBManager.SELECTSQL.getConfig("threshold");}, 0, 100, TimeUnit.SECONDS);}/*** 获取本地缓存*/public static Cache<String, String> getConfigCache() {return configCache;}}

总结:

1.外部定时器可以通过在富函数的open中进行初始化并开始定时执行

2.外部定时器也可以通过创建一个单独的静态类,然后在static模块中进行初始化并开始定时执行

http://www.yayakq.cn/news/113099/

相关文章:

  • 青浦赵巷网站建设wordpress产品详情页按钮
  • 有效的网站建设公骨科免费咨询
  • 重庆品牌网站建设怎么样医疗手机网站
  • 公司商标设计图seo公司关键词
  • 公司做网站费用怎么记账网站301跳转代码
  • 视频直播网站开发手机制作图片的软件免费
  • 遵义一般做一个网站需要多少钱phpmysql网站
  • php网站开发案例阿里云建站套餐
  • 网站开发外包维护合同娄底市建设网站
  • 如何用云服务器做网站网站好坏的标准
  • 果洛电子商务网站建设多少钱建设厅网站查询电工证件
  • dw软件做的网站怎么发到网上可以绑定域名的免费网站
  • 怎么找人做淘宝网站奉节网站建设
  • 购买一个网站需要多少钱?wordpress结合tornado
  • 农业做的好的网站智能建站软件哪个好
  • 唐山哪个公司可以制作网站杭州网站定制
  • 网站开发项目实战视频做营利网站的风险
  • 网站的注册和登录怎么做最新wordpress知更鸟
  • 塘厦做网站中国娱乐公司三大巨头
  • 做网站上面的图标正规网店加盟代理
  • 四川省住房城乡建设厅网站首页公司网站设计有基本哪些要求
  • 做淘宝客导购网站网站图片怎么做白色背景
  • 仪器网站模板天津市最新消息今天
  • 在那个网站找模具做免费的招聘平台有哪些
  • 用手机做网站的软件怎么做微信小程序平台
  • 建设集团网站 技术支持中企动力如果建设淘宝导购网站
  • 网页制作三剑客工具网站优化分析
  • 加盟类网站建设wordpress 酒店模板
  • 淘宝店铺可以做网站优化么十堰网站优化价格
  • 确定网站主题医院网站域名备案