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

wordpress 知识 管理云南网络营销seo

wordpress 知识 管理,云南网络营销seo,WordPress协会主题模板,网站排名软件推荐在文件的内容发生变动时,应用可以感知这种变种,并重新加载文件内容,更新应用内部缓存 实现 轮询:定时器Timer,ScheduledExecutorService 判断文件修改:根据java.io.File#lastModified获取文件的上次修改时…
  1. 在文件的内容发生变动时,应用可以感知这种变种,并重新加载文件内容,更新应用内部缓存

  2. 实现

    1. 轮询:定时器Timer,ScheduledExecutorService

    2. 判断文件修改:根据java.io.File#lastModified获取文件的上次修改时间,比对

    3. public class FileUpTest{private long lastTime;private void ttt(){throw new NullPointerException();}@Testpublic void testFileUpdate(){File file = new File("/tmp/alarmConfig");//首先文件的最近一次修改时间戳lastTime = file.lastModified();//定时任务,每秒来判断一下文件是否发生变动,即判断lastModified是否改变ScheduledExecutorService scheduledExcutorService = Executors.newScheduledThreadPool(1);scheduledExecutorService.scheduleAtFixedRate(new Runnable(){@Oveerridepublic void run(){if(file.lastModified() > lastTime){System.out.println("file update! time : "+ file.lastModified());lastTime = file.getlastModified();ttt();}}},0,1,TimeUnit.SECONDS);try{Thread.sleep(100*60);}catch(InterruptedException e){e.printStackTrace();}}
      }
      
    4. 使用这种的,如果定时任务执行过程中遇到发生异常,则后面的任务将不再执行

  3. apache版本

    1. <dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.6</version>
      </dependency>
      
    2. 借助工具中FileAlterationObserver,FileAlterationListener,FileAlterationMonitor三个类实现相关需求

    3. public class PropertiesConfListenerHelper{public static boolean registerConfChangeListener(File file,Function<File,Map<String,AlarmConfig>> func){try{//轮询间隔5秒long interval = TimeUnit.SECONDS.toMillis(5);//因为监听是以目录为单位进行的,所以这里直接获取文件的根目录File dir = file.getParentFile();//创建一个文件观察期用于过滤FileAlterationObserver observer = new FileAlterationObserver(dir,FileFilterUtils.and(FileFilterUtils.fileFileFilter(),FileFilterUtils.nameFileFilter(file.getName())));//设置文件变化监听器observer.addListener(new MyFileListener(func));FileAlterationMonitor monitor = new FileAlterationMonitor(interval,observer);monitor.start();return true;}catch(Exception e){log.error("register properties change listener error! e:{}",e);return false;}}static final class MyFileListener extends FileAlterationListenerAdaptor{private Function<File,Map<String,AlarmConfig>> func;public MyfileListener(Function<File,Map<String,AlarmConfig>> func){this.func = func;}@Overridepublic void onFileChange(File file){Map<String,AlarmConfig> ans = func.apply(file);//如果加载失败,打印一条日志log.warn("PropertiesConfig changed ! reload ans: {}",ans);}}
      }
      
    4. 介绍

      1. 这个文件监听,是以目录为根源,可以设置过滤器,来实现对应文件变动的监听
      2. 上面的registerConfChangeListener方法,传入的file是具体的配置文件,因此构建参数的时候,拿到目录,拿到文件名作为过滤
      3. 第二个参数是jdk1.8语法,其中为具体的读取配置文件内容,并影射为对应的实体对象
      4. 如果func方式执行时,抛出了一场,程序失败,不在运行
  4. JDK版本

    1. JDK1.7提供了一个WatchService,可以用来实现文件变动的监听

    2. @Test
      public void testFileUpWather() throws IOException{//监听必须是目录Path path = Paths.get("/tmp");WatchService watcher = FileSystems.getDefault().newWatchService();path.register(watcher,ENTRY_MODIFY);new Thread(() ->{try{while(true){WatchKey key = watcher.take();for(WatchEvent<?> event : key.pollEvents()){if(event.kind() == OVERFLOW){                        // 实践可能lost or discardedcontinue}Path fileName = (Path)event.context();System.out.println("文件更新:"+fileName);}if(!key.reset()){//重设WatchKeybreak}}}catch(Exception e){e.printStackTrace();}}).start();try{Thread.sleep(1000* 60 * 10);}catch(InterruptedException e){e.printStackTrace();}
      }
      
    3. 千万不要在定时任务或者文件变动的回调方法中抛出异常

    4. 为了避免异常断开情况,一个是可以做的实现借助EventBus的异步消息通知机制来实现,当文件变动之后,发送一个消息即可,然后在具体的重新加载文件内容的方法上,添加一个@Subscribe注解即可,这样既实现了解耦,也避免了一场导致的服务异常

http://www.shuangfujiaoyu.com/news/57087.html

相关文章:

  • 我要建立一个网站推广软文怎么写样板
  • 网站开发申请如何在外贸平台推广
  • 做网站电话沧州优化大师win10能用吗
  • 王者荣耀网站开发目的站长工具永久
  • 用java做网站步骤怎么搜索关键词
  • 日本真人做爰直播网站温州seo优化
  • b2b网站栏目北京学电脑的培训机构
  • 深圳华强北网站建设磁力王
  • crm免费客户管理系统焦作seo公司
  • 深圳市富通建设工程有限公司网站网站信息查询
  • 旅游网站建设的相关报价本网站三天换一次域名
  • 做暧在线观看网站申请网址怎么申请的
  • 整形医院网站建设软文网站名称
  • 12306网站开发过程互联网公司
  • 网站开发实训总结网络营销模式
  • 软件项目设计方案seo网站优化外包
  • 花钱制作网站有什么好处公众号推广平台
  • 网站首页代码在哪里推广关键词优化
  • dede手机网站模版百度安装应用
  • 赚钱的网站平台网络推广app是干什么的
  • 南京地区网站开发汕头seo建站
  • 郑州网站制作公司怎么样南宁百度关键词推广
  • 南京网站设计课程扶贫832网络销售平台
  • 网站怎么做能中英文的我们公司想做网络推广
  • 昆明网站建设方案优化seo公司怎么推广宣传
  • 嘉兴制作手机网站搜索网络如何制造
  • wordpress短信通知下载优化大师安装桌面
  • python做简单的网站百度推广官方电话
  • 青岛做公司网站sem是什么设备
  • 妇科网站源码模板建站价格