做公众号收入百万的这一年, 时间窗口模式 (Time Window Pattern) 来讲解

年终总结

写了微信公众号一年啦, 想要总结一下这年的写作情况

这一年总共写了 40 篇文章, 最后有 221 位小伙伴关注了 codog代码狗

文章总结

这些文章里面有一些比较典型的文章, 下面我来列举一下:

第一篇写的文章:还是母胎solo?不如用Builder Pattern 捏一个男/女朋友

阅读量/再看/赞赏最高的文章:又催婚?别怪我亮出 Null Object Pattern

点赞数最高的文章:杭州女子失踪案告破, 绞杀者模式(Strangler Pattern)来预防

阅读量次高文章:不良PUA到底多可怕?状态模式来揭秘

再看次高文章:Strategy Pattern 教你秒变“神枪手”

赞赏次高文章:

设计模式分享

一聊天就洗澡? (Partial Response Pattern)部分响应模式让你抓住女神的点

女神变女友?Converter Pattern教你一键转换

互联网人35岁送外卖?Dirty Flag Pattern 竟“助纣为虐”!

空对象模式我是来源于<重构>这本书, 感兴趣的小伙伴可以看看, 非常感谢大家对 codog代码狗 的支持~

Time Window Pattern(时间窗口模式)

背景技术

数据是系统的基础,做应用系统常常需要将某些数据(比如网络爬虫解析的数据,云服务数据,老版本数据库等)拉取数据同步到目标数据存储中(比如关系型数据库,文档数据库等)用来做业务驱动,数据统计分析或者用作系统和业务监控依据,其中有很多种方式,比如源数据作为发送方触发消息驱动,目标数据作为接收方接收变更消息或者目标数据定时主动请求源数据提供的接口或者其他能获取变化信息的能力等

目前通过定时任务拉取数据的时候,有二种常见的同步方法:

一种是按照固定频率执行任务,每次执行失败就终止 记录失败时间,定时任务触发下次执行任务从上次失败时间开始,这种方法存在的问题是即使多次启动,可能仍然会因为各种原因重复失败,导致时间不向前进,极端情况可能会导致系统数据完全无法更新;

另一种是每个小时同步每个小时的数据,错误的就跳过或者记录下来,这种问题是数据能随时保持最新,但是可能会导致前一个任务的延迟导致后一个任务无法启动而无法同步数据或者由于极端情况导致机器宕机引起几个小时没有同步数据,造成数据丢失。

具体技术方案

抽象定时任务的概念,分为读取,处理和写入三个部分,其中读取的来源于网络,系统接口,文件,数据库或其他存储形式,处理主要是指对读取的数据进行过滤,分析,汇总等等生成待写入的数据,写入的一般操作是对处理后的数据结果进行存储或者用来触发通知,打印日志等

主要流程是从配置表中读取开始时间,时间间隔和结束时间(如果为空取当前时间),首先判断开始时间加上本次同步时间间隔是否小于结束时间,如果不是,证明是任务还没有到启动的时间而被调度了(因为当前时间之后的数据还没有生成,如果不做这个判断,后面更新时间窗口可能会导致错失新产生的数据),如果符合条件,启动任务,先将时间段S 到 T 这段时间均分为N段,每段(T-S)/N 秒/分钟/小时/月/年,如果某个时间段失败了,记录下来相关的时间段,后续补偿,读成功的数据都并行处理,如果某条数据由于各种原因失败了就记录数据唯一标识或者这个数据序列化后的结果,后续补偿,处理成功的数据执行写入方法,写入方法需要是防重的或者是幂等的(常用的防重方法有查询已经存储主键数据进行过滤结合根据数据库主键插入判断异常,幂等方法有根据业务时间或者版本号等判断删除老数据,插入新的数据或放弃插入当前数据等),如果写入失败,也记录数据唯一标识或者这个数据序列化后的结果,后续补偿,最后如果整个时间段所有的数据都有了明确的处理结果,说明整个时间段的数据成功的都执行了写入方法,失败的时间段或者数据都有了记录表,推送开始时间前进一个时间间隔,为下次定时任务启动的时候做准备。

补偿流程和报警流程主要是从上面的数据项失败记录表和时间段失败表取出等待补偿的数据,根据数据的补偿重试次数或者整个的等待补偿记录数量结合自定义的业务需求做出报警,通知管理员需要重点关注或者人为处理失败的情况,另外除了报警,主要是调用补偿程序(根据数据项补偿和根据时间段补偿)对失败单据进行补偿,如果补偿成功,删除失败记录,如果补偿失败,记录补偿次数,补偿时间等信息,作为报警依据,等待下次补偿,补偿程序依然需要防重或者幂等,可以多次调用,而不会产生不合理的数据。

行啦, 正文来啦, 经过这一年我对微信公众号的苦心经营, 每个周六日的辛苦耕耘, 仔细研究格式与排版, 不断学习和输出讨论, 微信公众号这一年的收入排除了老妈和同事前同事的友情资助, 这一年的总收入是 3 元, 好的, 加上我爸给我的 99万9千9百97, 正好一百万了

微信终于有了类似评论的功能, 大家想对 codog代码狗 有什么要说的么

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,319评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,801评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,567评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,156评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,019评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,090评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,500评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,192评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,474评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,566评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,338评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,212评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,572评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,890评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,169评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,478评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,661评论 2 335