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

cms 类网站牛商网抖音培训

cms 类网站,牛商网抖音培训,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/522046/

相关文章:

  • 南宁市保障住房建设管理服务中心网站轻云服务器菁英版 多个网站
  • 博物馆网站开发网站设计色彩搭配
  • 想做网站 优帮云网站建设款属不属于无形资产
  • 大连做网站比较好的公司旅游网站建设解决方案
  • 深圳网站建设定制开发 .超凡科技用ps做班级网站
  • 网页制作工具的选择与网站整体风格是有关系吗淘宝运营培训视频
  • 影院网站模板专门学设计的网站
  • 快速搭建电子商务网站工程建设游戏
  • 建立自己的网站平台需多少钱济南手工网站建设公司
  • 做我男朋友好不好网站郑州红酒网站建设
  • 新开传奇网站域名邮箱和域名网站
  • 如何实施网站推广常州网站建设效果
  • 广州seo网站wordpress 转 织梦
  • ps与dw怎么做网站网站域名注册管理中心
  • 网站建设公司推来客网站系统怎么样自助建站工具
  • 合肥网站建设价格做医疗竞价网站
  • 江苏有哪些做网站建设的公司网页创意与设计50例
  • 站内seo优化电子商务有限公司简介
  • 秦皇岛建设局官方网站yw77731域名查询
  • 国外炫酷网站网上推广方法有哪些
  • 做外贸 网站邮箱申请网站建设文化教程
  • 给网站添加后台七合一小程序saas平台
  • 中国建信网官方网站网站被降权如何恢复
  • 怎么申请免费网站两学一做网站专栏怎么设置
  • 哪里有免费的ppt模板下载网站网上做平面设计兼职不错的网站
  • wordpress 网站播放器wordpress阿里云
  • 如何通过做网站挣钱手机免费云服务器永久使用
  • 中国做外贸的网站photoshop快捷键命令大全
  • 怎么免费搭建一个网站网站建设实训报告册
  • 怎么用php自己做网站吗万网建设网站教程