dede网站地图不显示文章列表wordpress怎么发博客

diannao/2026/1/27 0:08:48/文章来源:
dede网站地图不显示文章列表,wordpress怎么发博客,wordpress 产品筛选,北京网站建设 网站制作文章目录 一. 基础逻辑二. DirtyManager1. 初始化2. 收集脏数据并check3. 关闭资源 三. DirtyDataCollector1. 初始化2. 收集脏数据并check3. run#xff1a;消费脏数据4. 释放资源 四. LogDirtyDataCollector 一. 基础逻辑 脏数据管理模块的基本逻辑是#xff1a; 当数据消… 文章目录 一. 基础逻辑二. DirtyManager1. 初始化2. 收集脏数据并check3. 关闭资源 三. DirtyDataCollector1. 初始化2. 收集脏数据并check3. run消费脏数据4. 释放资源 四. LogDirtyDataCollector 一. 基础逻辑 脏数据管理模块的基本逻辑是 当数据消费失败时将脏数据拦截并保存到dirtyDataCollector中全局metric判断脏数据达到设定值之后任务报错flink停止运行并将脏数据输出到flink日志中、或mysql的配置中。 对于代码实现 DirtyManager用于管理DirtyDataCollector串起DirtyDataCollector的生命周期DirtyDataCollector主要用于收集脏数据并输出到日志中mysql中脏数据数量达到设定值之后flink停止运行。 具体的DataCollector实现有 分别用于输出到taskmanager的日志、最后报错时jobmanager日志、输出到mysql表中。 所以这里有三层代码结构 DirtyManager管理DirtyDataCollectorDirtyDataCollector主要用于收集脏数据并输出并判断脏数据是否达到临界值具体的DataCollector的实现具体的输出实现输出到日志输出到mysql。 接下来我们逐个看每层的具体实现逻辑   二. DirtyManager DirtyManager用于管理DirtyDataCollector串起DirtyDataCollector的生命周期open、run、close主要流程如下 设置系统配置给DirtyDataCollector开启DirtyManager线程主要用于DirtyDataCollector消费脏数据收集脏数据关闭资源DirtyDataCollector、DirtyManager的线程资源。 1. 初始化 初始化DirtyManager 根据配置加载特定的DirtyDataCollector用于脏数据的收集获取系统信息jobId、jobName、operationName获取脏数据metric用于定期合并脏数据为全局脏数据。 public DirtyManager(DirtyConfig dirtyConfig, RuntimeContext runtimeContext) { //通过反射注册DirtyDataCollectorthis.consumer DataSyncFactoryUtil.discoverDirty(dirtyConfig); MapString, String allVariables runtimeContext.getMetricGroup().getAllVariables(); this.jobId allVariables.get(JOB_ID); this.jobName allVariables.getOrDefault(JOB_NAME, defaultJobName); this.operationName allVariables.getOrDefault(OPERATOR_NAME, defaultOperatorName); this.errorCounter runtimeContext.getLongCounter(Metrics.NUM_ERRORS); }2. 收集脏数据并check 被具体的连接器调用 具体当连接器生产数据或写数据到数据源报错时调用此方法收集脏数据 创建线程用于异步执行DirtyDataCollector开始消费脏数据到日志或mysql表中添加脏数据条数同步到全局脏数据metric中脏数据信息存到队列中等待具体的脏数据收集器消费子流程判断脏数据条数是否大于总脏数据条数 public void collect(Object data, Throwable cause, String field, long globalErrors) { if (executor null) { execute(); } DirtyDataEntry entity new DirtyDataEntry(); entity.setJobId(jobId); entity.setJobName(jobName); entity.setOperatorName(operationName); entity.setCreateTime(new Timestamp(System.currentTimeMillis())); entity.setDirtyContent(toString(data)); entity.setFieldName(field); entity.setErrorMessage(ExceptionUtil.getErrorMessage(cause)); //积累metricerrorCounter这里直接同步到jobmanagererrorCounter.add(1L); //将脏数据添加到队列等待消费。consumer.offer(entity, globalErrors); }/** * 创建线程用于异步执行DirtyDataCollector */public void execute() { if (executor null) { executor new ThreadPoolExecutor( MAX_THREAD_POOL_SIZE, MAX_THREAD_POOL_SIZE, 0, TimeUnit.MILLISECONDS, new LinkedBlockingQueue(), new ChunJunThreadFactory( dirty-consumer, true, (t, e) - { log.error( String.format( Thread [%s] consume failed., t.getName()), e); }), new ThreadPoolExecutor.CallerRunsPolicy()); } //初始化DirtyDataCollector比如脏数据定时发送到mysql时的线程注册 consumer.open(); //拿出一个线程执行DirtyDataCollector的execute方法 executor.execute(consumer); } 3. 关闭资源 /** Close manager. */ public void close() { if (!isAlive.get()) { return; } //先关闭datacollector的资源if (consumer ! null) { consumer.close(); } //再关闭executor线程if (executor ! null) { executor.shutdown(); } isAlive.compareAndSet(true, false); }三. DirtyDataCollector 处于第二层的dirtyDataCollector实现了脏数据的临时保存并等待具体DataCollector的消费 它的基本逻辑是 当脏数据消费失败时将脏数据拦截并保存到consumeQueue中等待被消费全局的metric脏数据达到设定值之后任务报错flink停止运行并将脏数据输出到flink日志中。 1. 初始化 在DirtyManager实例化时注册DirtyDataCollector时的操作 这里获取脏数据最大值允许消费脏数据失败的条数以及对具体DataCollector的初始化我们下节分析。 public void initializeConsumer(DirtyConfig conf) { this.maxConsumed conf.getMaxConsumed(); this.maxFailedConsumed conf.getMaxFailedConsumed(); this.init(conf); }被DirtyManager调用在开启脏数据收集器线程之前执行 初始化具体脏数据收集器目前之后mysql脏数据收集器实现了此方法消费线程、mysql连接 public void open() { }2. 收集脏数据并check offer方法被DirtyManager的collect方法调用 用于存储具体脏数据并更新单个slot的脏数据条数。每添加一条脏数据就判断脏数据是否达到了设定值如果是则抛出异常。 其中globalErrors是上文AccumulatorCollector定期更新的结果。 //存储脏数据具体内容并更新单个slot的脏数据条数 public synchronized void offer(DirtyDataEntry dirty, long globalErrors) { consumeQueue.offer(dirty); addConsumed(1L, dirty, globalErrors); }/** * 添加脏数据 * 通过metric判断此时的脏数据条数是否已经超过全局设置的脏数据条数 * param count * param dirty * param globalErrors */ protected void addConsumed(long count, DirtyDataEntry dirty, long globalErrors) { consumedCounter.add(count); // 因为总体的脏数据需要tm和jm进行通讯每tm心跳1s会有延迟且当单slot运行时误差将达到最大 // 所以这里需要判断延迟情况 long max consumedCounter.getLocalValue() globalErrors ? consumedCounter.getLocalValue() : globalErrors; // 但这里仍然有误差此时如果所有的slot都消费了脏数据那么其他slot的脏数据就记录不到。也就是会多消费脏数据 // 所以这里要有取舍是否要消费完全准确的脏数据 if (max maxConsumed) { StringJoiner dirtyMessage new StringJoiner(\n) .add(\n****************Dirty Data Begin****************\n) .add(dirty.toString()) .add(\n****************Dirty Data End******************\n); throw new NoRestartException( String.format( The dirty consumer shutdown, due to the consumed count exceed the max-consumed [%s], maxConsumed) dirtyMessage); } } 3. run消费脏数据 由DirtyManager开启脏数据消费线程 具体的DataCollector(log、mysql)消费脏数据发送到Taskmanager日志或mysql表中。 /** * 开启脏数据消费线程 * 定时消费脏数据发送到执行脏数据管理器中log、mysql等 */ Override public void run() { while (isRunning.get()) { try { //指定的DataCollector消费脏数据DirtyDataEntry dirty consumeQueue.take(); consume(dirty); } catch (Exception e) { //未成功将脏数据收集到脏数据管理模块中 addFailedConsumed(e, 1L); } } }/** * 消费脏数据用于输出到日志、mysql等 */protected abstract void consume(DirtyDataEntry dirty) throws Exception; 4. 释放资源 不同的DataCollector有不同的操作下节分析 public abstract void close();四. LogDirtyDataCollector 实现比较简单拿到的数据直接打印到Taskmanager中关闭时设定isRunning为false /** * 没有线程调用即输出到日志中 */ Slf4j public class LogDirtyDataCollector extends DirtyDataCollector { private static final long serialVersionUID 7366317208451727471L; private Long printRate; Override protected void init(DirtyConfig conf) { this.printRate conf.getPrintRate(); } /** * 输出脏数据到taskmanager * param dirty dirty-data which should be consumed. */ Override protected void consume(DirtyDataEntry dirty) { if (consumedCounter.getLocalValue() % printRate 0) { StringJoiner dirtyMessage new StringJoiner(\n) .add(\nDirty Data) .add(dirty.toString()) .add(\n); log.warn(dirtyMessage.toString()); } } Override public void close() { isRunning.compareAndSet(true, false); log.info(Print consumer closed.); } } 下篇分析MysqlDirtyDataCollector是如何消费数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/87797.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

承德网站制作的流程外汇返佣网站开发

题目 Problem Description 一个学校里老师要将班上N个同学排成一列,同学被编号为1~N,他采取如下的方法: 1.先将1号同学安排进队列,这时队列中只有他一个人; 2.2~N号同学依次入列,编号…

怎么制作有效网站wordpress鼠标导航栏

目录 一、建立项目 二、删除无用文件 三、样式添加 四、写一个登录页面 五、登录主界面 一、建立项目 二、删除无用文件 三、样式添加 将你的图片资源添加在wwwroot下方,例如pics/logo.png 四、写一个登录页面 将Privacy.cshtml改为 Forget.cshtml &#xff0…

网站上有什么作用WordPress富媒体说说

问题描述 Request请求之后,页面返回了数据,其他字段都对,就那一个字段是null 排除问题 能访问到其他数据,说明IDEA连接数据库时成功了的,那不是数据库的问题就是字段本身的问题 存在的问题 字段类型,检…

优秀网站的要素有福田市网站建设推广

1.前言 在9.0的系统rom产品定制化开发中,在对于第三方app全屏显示的功能需求开发中,需要默认app全屏显示,针对这一个要求,就需要在系统启动app 的过程中,在绘制app阶段就设置全屏属性,接下来就实现这个功能 效果图如下: 2.framework层实现app默认全屏显示的核心类 fram…

网站改版的费用建设工程公司简介

叶梓,工学博士,高级工程师。现某大型上市企业资深技术专家。 2005年上海交通大学计算机专业博士毕业,在校期间的主研方向为数据挖掘、机器学习、人工智能。毕业后即进入软件行业从事信息化技术相关工作;负责或参与了多项国家级、省…

做网站要服务器和什么wordpress 图片浏览器

有一段时间没有写文章,techempower的测试规则评分竟然发生了变化,只能忘着补充一下占比权重最多的数据更新示例了和深入设计一下组件模块化加载的设计。但在不久前有用户问了一下组件是否支持redis的Stream功能,看了一样相关资料后把功能实现…

网站原型设计软件开发做平台

List,Set,Map,有什么区别? List和Set实际上市实现了Collection接口,那么Collection接口的原理你能简单描述一下吗? List接口可以插入多个NULL值,并且重复值,而且LIST是一个有序的集合。 Set是一个不可重复的集合&#…

搜索网站 模板可以用手机制作app的软件

在系统的相册中,观看相片就可以用多个手指进行缩放.要实现这个功能,只需要这几步:1.新建项目,在项目中新建一个ZoomImage.javapublic class ZoomImageView extends View {//初始化状态常量public static final int STATUS_INIT1;//图片放大状态常量public static final int STA…

网站交互界面国内html5网站案例

文章目录 结构优缺点优点缺点使用了迭代器模式的知名框架代码示例在实现迭代器时,需要有什么考虑迭代器模式(Iterator)是一种行为设计模式,它允许在不暴露集合底层表示的情况下,顺序访问一个集合中的元素。这种模式在需要逐个处理集合中的元素,而又不希望暴露其内部结构的…

写出网站开发的基本流程做网站需要做优化吗

文章目录1 问题描述2 问题分析3 代码实现1 问题描述 有读者和写者两组并发进程,共享一个文件,当两个或两个以上的读进程同时访问共享数据时不会产生副作用,但若某个写进程和其他进程(读进程或写进程)同时访问共享数据时…

淘宝客如何建立自己的网站建设商城网站的难点

思路:因为题目说只要存在组ai??ai??n??ai??2n?≠?6就令人满意,也就是不满意的情况就是所有ai??ai??n??ai??2n?都等于6那就用所有的情况减去不满意的情况,总结: 直接用二分幂不知道为什么wa的要死,看到别人的题…

潍坊在线制作网站网站推广软件费用是多少

最大子矩阵...悬线法..时间复杂度O(nm)悬线法就是记录一个H向上延伸的最大长度(悬线), L, R向左向右延伸的最大长度, 然后通过递推来得到. ------------------------------------------------------------------#include<bits/stdc.h>using namespace std;#define ok(c) …

有可以做推广的网站吗网站设计欣赏移动

今天是三八女神节&#xff0c;这里先祝广大的程序员妹子们节日快乐&#xff0c;健康美丽&#xff01;有一个问题&#xff0c;相信很多.NET程序员都很感兴趣&#xff1a;.NET程序员中女生占比多少&#xff1f;先来公布答案&#xff1a;在本次调查中发现&#xff0c;.NET程序员群…

新丰县建设局网站模板 网站 缺点

js 一直允许定义类。ES6新增了相关语法(包括class关键字)让创建类更容易。新语法创建的类和老式的类原理相同。js 的类和基于原型的继承机制与Java等语言中的类和继承机制有着本质区别。 1 类和原型 类意味着一组对象从同一个原型对象继承属性。因此&#xff0c;原型对象是…

修改wordpress地址网站打不开哪里有专做水果的网站

在 Lua 中&#xff0c;性能分析&#xff08;profiling&#xff09;是一个关键步骤&#xff0c;用于找出代码中的瓶颈和优化机会。通过性能分析&#xff0c;你可以了解哪些函数或代码段占用了最多的执行时间&#xff0c;从而可以优先优化这些部分。 Lua 本身并没有内置的性能分…

中建建筑网站海南政务网

2024网盘行业再次重燃战火。字节旗下产品头条搜索极速版APP、悟空浏览器APP推出对应的网盘功能&#xff0c;刚刚开放了拉新推广&#xff0c;现在是一个不能错过新项目的好时机。 如果你对网盘拉新推广充满热情&#xff0c;千万不要错过星子助推联合字节推出的网盘项目机会。小…

中国建设机械教育网官方网站网站编程图

随着人口老龄化的加剧&#xff0c;智慧养老成为了社会关注的焦点。智慧养老小程序作为一种便捷、高效的服务工具&#xff0c;为老年人提供了更全面、个性化的服务。本文将介绍如何使用JAVA编程语言开发一款同城服务智慧养老小程序。 一、设计思路 界面设计&#xff1a;小程序…

网站权限设计深圳出台鼓励芯片产业政策

用该命令sed删除文件test.txt中包含某个字符串abc的行: sed /adc/d test.txt >result.txt 在文件test.txt中删除从开头到含有某个字符串abc的行 sed 1,/abc/d test.txt >result.txt 获取文件test.txt中包含字符串abc的行 cat test.txt |grep "abc" > resul…

地方网站怎么做挣钱网站开发案例详解 源代码

随着 Visual Studio Code 1.59.0 正式版本的发布&#xff0c;全新的插件测试 API 也从试验版本进入了正式版本。自 2020 年 9 月起至今&#xff0c;经过了将近一年及数次版本迭代的打磨&#xff0c;不管是 API 的功能性还是易用性&#xff0c;与首个预览版本相比都获得了极大的…