前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >条条思路通罗马

条条思路通罗马

作者头像
一猿小讲
发布2019-08-16 16:56:02
2930
发布2019-08-16 16:56:02
举报
文章被收录于专栏:一猿小讲一猿小讲

01. 抛砖

敲黑板,讲重点。今天我先抛一开放性话题,也是我平时面试候选人时经常谈及的,看看你有没有相关解决思路?

Q:有A、B两个定时任务,其中任务 B 要在任务 A 执行完成后才能执行,如何保证任务的执行顺序?

A:潜意识:啥、啥、啥,一脸懵?心情只能用下图来形容。

从事金融相关研发的程序员,多多少少都了解,一个完整的系统,会像钟表一样,背后隐藏了诸多的齿轮任务在运转。其中系统中的每个定时任务之间,难免会有前置依赖关系。

举个业务场景:对接银行的某理财产品,如果想统计收益,那么最常用的方式便是:双方约定固定时间,定时从银行获取收益文件,然后解析收益文件入库(任务 A);然后进行执行收益记账任务(任务 B)。

那么如何保证收益记账任务 B 执行时,获取收益文件任务 A 已经执行完成了呢?

02. 思考

能用图说懂的,不再瞎白话,一言不合,直接画图,上图进行协助思考,相信你仔细看图,肯定能搞清楚咋回事。

03. 何解

流程搞清楚,那么实现就分分钟。简单说一下最原始、最简单的实现思路。

首先设计一张批量任务定义的表 t_job_define,摘取两个核心字段示意一下。

任务编号:JOB_ID

前置任务编号:PRE_JOB_ID

接着设计一张批量任务跑批详情表 t_job_run_detail,摘取两个核心的字段示意一下。

任务编号:JOB_ID

跑批时间:BATCH_DATE

最后还是配个图,释义一下,我相信你肯定能看懂。

04. 升华

不喜欢土枪的,不妨尝试一下土枪换炮。有精力的你,不妨了解一下阿兹卡班(Azkaban),毕竟每个技术都不需要太深入,用到的时候深入也不晚。但是一定要知道,技多不压身。

https://azkaban.github.io/

05. 最后

条条思路通罗马,我相信你肯定会有很多独特的见解,也不乏好的实现思路,借助《聊斋志异》中的一句话“黄狸黑狸,得鼠者雄”,其实也就是邓爷爷说的“不管是黑猫白猫,能抓住老鼠的就是好猫”。

今天的分享到这就结束了,主要想表达一下简单的思想,你 get 到了没?

画图不易,码出能让你一看就懂的文章更不易。如果感觉稍微有点意思,不用赞赏,多多分享转发给你的朋友就很感激。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-06-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 一猿小讲 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档