徒手打造一款为业务赋能的小工具,另附实战经验…
2020-04-04 16:05:52来源:博客园 阅读 ()
徒手打造一款为业务赋能的小工具,另附实战经验。
线上应用程序升级,需要把缺失的数据关联补充一下,你写个程序处理一下?
客户信息同步,由于是线上敏感字段都是加密处理,所以需要你再写个程序解密处理一下?
曾记得 N 年前,我经常干这种事情,码这种代码。今天回过头来,对此类事情简单做一个分享,以防你们也遇到此类问题,不妨拿去实践一下,说不定会提高效率呢。
01. 说思路
其实上图已经把问题解决思路,简单明了化了,还是再重复解释一下。
首先要写一个 Java Main 函数, 接收应用执行所需的参数,例如:数据库连接 URL、用户名、密码;待更新数据的时间等等。
然后需要提供一个触发 shell 脚本,术业有专攻,考虑到运维同事在线上操作的方便,一键便可运行。
思路清晰之后,其实写数据处理的程序一点都不难。
数据处理程序最基本、最简单的写法可以用 JDBC;略显牛掰的可以用 MyBatis,程序写完部署到线上时只需要编译后的 class 文件;另外程序需要引入数据库相关类库(jar 包)以及用到的三方类库;偶尔会接到结合源数据 srcData 来处理线上数据的需求场景。
所以线上发布的 package 大致如下:
classes 用于存放编译之后的数据处理程序 lib 用于存放数据库相关jar包以及三方类库等 notifyDataUpdate.sh 用于触发数据处理程序的脚本 srcData.txt 源数据(偶尔会解析源数据入库更新等操作)
02. 讲实现
上面已经说过,写数据处理的程序一点都不难,这个小儿科的东西,也不是咱们今天分享的重点(不懂的,问一问度娘,度娘会告诉你一大堆)。
接下来咱们还是重点聊一聊,如何编写触发数据处理程序的 shell 脚本吧,一言不合,直接抛代码。
#!/usr/bin/ksh LANG=zh_CN export LANG echo "----------" `date` "--------" cd /usr/app/p2pDataUpdate # do business APP_BASE=/usr/app/p2pDataUpdate LIB_BASE=$APP_BASE/lib CLASSPATH=./:./classes CLASSPATH=$CLASSPATH:$LIB_BASE/db2jcc_license_cu.jar CLASSPATH=$CLASSPATH:$LIB_BASE/db2jcc.jar export CLASSPATH java P2PDataUpdate jdbc:db2://localhost:50000/dev username userpwd /usr/app/p2pDataUpdate
仔细看的你们,应该发现很简单,就是进入应用目录,然后配置 CLASSPATH,最后运行 java Main 再加上参数。
这样运维同事在线上操作时,就无需关注数据处理 Java 程序这些东东啦,直接运行 shell 脚本就 ok 了,术业有专攻,那么运维遇到 shell 脚本,应该是最亲热不过了。
03. 写最后
分享了个简单的数据处理工具,如果我们再配上一个 crontab 定时调度 shell 脚本,那么就可以解决业务数据定期同步的场景啦(这个场景用的也比较多)。
为了让你们轻松玩转上面这款工具,最后再分享一些经验(躺过的坑)吧。
经验一:shell脚本中的空格如何去除?
sed -i 's/\r$//' XXXX.sh
经验二:shell 脚本中如何传入当前的日期?
LD=`perl -MPOSIX -le 'print strftime "%Y-%m-%d", localtime(time()-86400);'` echo LD=${LD} java P2PDataUpdate jdbc:db2://localhost:50000/dev username userpwd ${LD}
经验三:如何修改 Linux 的时区?
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
经验四:如果数据创建时间 intime 字段有索引,注意下面的拼接才会走索引呦
intime>='2012-04-01-00.00.00.000000' and intime<='2012-04-30-23.59.59.999999'
希望今天的简单分享,能帮助你们提高工作的效率,腾出更多时间去喝咖啡。
原文链接:https://www.cnblogs.com/socoool/p/12629796.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 2020最新IDEA插件大集合,一款能帮助你写代码的工具是多么重 2020-06-09
- 一款吊炸天的面试“神器”,这面试叫一个爽「Java版」 2020-05-29
- 从0到1打造正则表达式执行引擎 2020-05-04
- 徒手编写Spring的初始化之山寨版IOC容器 2020-04-24
- 重磅 | 推荐一款技术人必备的写作神器 (支持多平台博客群发) 2020-04-05
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash