国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

泉州做媽祖雕像網(wǎng)站常用的網(wǎng)絡(luò)營(yíng)銷工具

泉州做媽祖雕像網(wǎng)站,常用的網(wǎng)絡(luò)營(yíng)銷工具,正規(guī)html5成人網(wǎng)站,做商貿(mào)網(wǎng)站背景: 我們經(jīng)常會(huì)使用到比如數(shù)據(jù)庫(kù)中的配置表信息,而我們不希望每次都去查詢db,那么我們就想定時(shí)把db配置表的數(shù)據(jù)定時(shí)加載到flink的本地內(nèi)存中,那么如何實(shí)現(xiàn)呢? 外部定時(shí)器定時(shí)加載實(shí)現(xiàn) 1.在open函數(shù)中進(jìn)行定時(shí)器的…

背景:

我們經(jīng)常會(huì)使用到比如數(shù)據(jù)庫(kù)中的配置表信息,而我們不希望每次都去查詢db,那么我們就想定時(shí)把db配置表的數(shù)據(jù)定時(shí)加載到flink的本地內(nèi)存中,那么如何實(shí)現(xiàn)呢?

外部定時(shí)器定時(shí)加載實(shí)現(xiàn)

1.在open函數(shù)中進(jìn)行定時(shí)器的創(chuàng)建和定時(shí)加載,這個(gè)方法對(duì)于所有的RichFunction富函數(shù)都適用,包括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> {// 定時(shí)任務(wù)執(zhí)行器private transient ScheduledExecutorService scheduledExecutorService;// 本地變量private int threshold;@Overridepublic void open(Configuration parameters) throws Exception {// 1.從db查詢數(shù)據(jù)初始化本地變量
//        threshold = DBManager.SELECTSQL.getConfig("threshold");// 2.使用定時(shí)任務(wù)更新本地內(nèi)存的配置信息以及更新本地變量threshold的值scheduledExecutorService = Executors.newScheduledThreadPool(10);scheduledExecutorService.scheduleWithFixedDelay(() -> {// 2.1 定時(shí)任務(wù)更新本地內(nèi)存配置項(xiàng)// 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);}}//本地緩存實(shí)現(xiàn)
package wikiedits.schedule;import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;/*** 保存Config信息的本地緩存 ---定時(shí)同步DB配置表的數(shù)據(jù)*/
public class ConfigEntityLocalCache {private static volatile ConfigEntityLocalCache instance = new ConfigEntityLocalCache();/*** 獲取本地緩存實(shí)例*/public static ConfigEntityLocalCache getInstance() {return instance;}/** 緩存內(nèi)存配置項(xiàng) */private static Cache<String, String> configCache =CacheBuilder.newBuilder().initialCapacity(50).maximumSize(500).build();/*** 更新本地緩存數(shù)據(jù)*/public boolean update(String key, String value){configCache.put(key, value);return true;}/*** 更新本地緩存數(shù)據(jù)*/public  String getByKey(String key){return configCache.getIfPresent(key);}}

2.在靜態(tài)類中通過(guò)static語(yǔ)句塊創(chuàng)建定時(shí)器并定時(shí)加載,代碼如下

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;/*** 靜態(tài)類定時(shí)加載DB配置表到本地內(nèi)存中*/
public class StaticLoadUtil {// 定時(shí)任務(wù)執(zhí)行器private static transient ScheduledExecutorService scheduledExecutorService;public static final Cache<String, String> configCache =CacheBuilder.newBuilder().initialCapacity(50).maximumSize(500).build();// 通過(guò)定時(shí)執(zhí)行器定時(shí)同步本地緩存和DB配置表static {scheduledExecutorService = Executors.newScheduledThreadPool(10);scheduledExecutorService.scheduleWithFixedDelay(() -> {// 2.1 定時(shí)任務(wù)更新本地內(nèi)存配置項(xiàng)// 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;}}

總結(jié):

1.外部定時(shí)器可以通過(guò)在富函數(shù)的open中進(jìn)行初始化并開始定時(shí)執(zhí)行

2.外部定時(shí)器也可以通過(guò)創(chuàng)建一個(gè)單獨(dú)的靜態(tài)類,然后在static模塊中進(jìn)行初始化并開始定時(shí)執(zhí)行

http://m.aloenet.com.cn/news/33216.html

相關(guān)文章:

  • 有什么值得做的網(wǎng)站企業(yè)網(wǎng)頁(yè)設(shè)計(jì)公司
  • 建購(gòu)物網(wǎng)站怎么建呀微商怎么做推廣加好友
  • 廣州響應(yīng)網(wǎng)站建設(shè)網(wǎng)頁(yè)設(shè)計(jì)友情鏈接怎么做
  • 深圳方維網(wǎng)站建設(shè)公司百度推廣運(yùn)營(yíng)公司
  • 我們的愛(ài)情網(wǎng)站制作網(wǎng)絡(luò)推廣外包聯(lián)系方式
  • 物流網(wǎng)站畢業(yè)論文如何做網(wǎng)站搜索引擎優(yōu)化
  • 渭南房產(chǎn)網(wǎng)站制作搜索引擎營(yíng)銷策略有哪些
  • 網(wǎng)站初期 權(quán)重怎么做長(zhǎng)春網(wǎng)站提升排名
  • 響應(yīng)式網(wǎng)站適合優(yōu)化嗎百度優(yōu)化插件
  • 網(wǎng)站建設(shè)加盟域名網(wǎng)
  • 杭州網(wǎng)站建設(shè)V芯ee8888e保定seo建站
  • 如何免費(fèi)自己做個(gè)網(wǎng)站seo入門基礎(chǔ)知識(shí)
  • 電子政務(wù)網(wǎng)站代碼如何讓產(chǎn)品吸引顧客
  • 新聞網(wǎng)站怎樣做seo優(yōu)化淘寶運(yùn)營(yíng)培訓(xùn)班去哪里學(xué)
  • 汅app下載大全2022昭通網(wǎng)站seo
  • 梧州網(wǎng)站建設(shè)服務(wù)商抖音關(guān)鍵詞推廣怎么做
  • 贛icp南昌網(wǎng)站建設(shè)產(chǎn)品推廣軟文
  • 個(gè)體營(yíng)業(yè)執(zhí)照可以做網(wǎng)站嘛微商軟文
  • 房地產(chǎn)怎么做網(wǎng)站推廣子域名網(wǎng)址查詢
  • 網(wǎng)站建設(shè)品牌公司一鍵優(yōu)化免費(fèi)下載
  • 搭建一個(gè)微信小程序要多少錢快速整站優(yōu)化
  • 響水網(wǎng)站建設(shè)公司外貿(mào)網(wǎng)站推廣服務(wù)
  • 中文網(wǎng)站做google廣告怎么樣北京企業(yè)網(wǎng)站推廣哪家公司好
  • 江都網(wǎng)站建設(shè)外鏈平臺(tái)
  • windows系統(tǒng)做ppt下載網(wǎng)站搜索引擎營(yíng)銷的主要模式
  • 網(wǎng)頁(yè)設(shè)計(jì)教程孟憲寧課后題答案seo實(shí)戰(zhàn)培訓(xùn)王乃用
  • 像芥末堆做內(nèi)容的網(wǎng)站百度上怎么發(fā)布作品
  • 用服務(wù)器ip怎么做網(wǎng)站百度官方推廣
  • php網(wǎng)站開發(fā)最新需求商家聯(lián)盟營(yíng)銷方案
  • 網(wǎng)站建設(shè)公司價(jià)seo營(yíng)銷軟件