问个简单的问题

alexnotman   (halu)2018-12-06 09:27:26
刚开始做web程序,不懂得太多,大家见谅
我要实现这么一个功能,定时(每月25号)从硬盘读一个文件,数据写到数据库里,并且把数据组成一个请求发出去
是一个Java EE的程序,在websphere里跑
我的问题是,需要考虑,比如说读取完文件,或者文件读取一半的时候程序崩溃的情况吗? 怎么做比较好?
存两个标志位,一旦写到数据库就标志成已读,一旦请求发出标志成已发? 这样还没读的话就度到数据库,else还没发的话就从数据库里读数据发送?
标志位应该存在哪呢?数据库里?
谢谢啦
roy   (天上掉大饼:学思行言)2018-12-06 09:28:52
你需要学习数据库事务
【 在 alexnotman (halu) 的大作中提到: 】
: 刚开始做web程序,不懂得太多,大家见谅
alexnotman   (halu)2018-12-06 09:30:26
但这个部全部是数据库操作阿,还要读文件呢
【 在 roy 的大作中提到: 】
: 你需要学习数据库事务
roy   (天上掉大饼:学思行言)2018-12-06 09:37:18
再想想?
读全部成功、请求成功发出才提交事务呗
【 在 alexnotman (halu) 的大作中提到: 】
: 但这个部全部是数据库操作阿,还要读文件呢
alexnotman   (halu)2018-12-06 09:41:40
谢谢,我想也没用啊,因为我也没做过。你的意思是所有操作都能包成一个原子操作呗。我去研究下
【 在 roy 的大作中提到: 】
: 再想想?
:
guestking   (无)2018-12-06 09:44:42
文件读完,读成功了,才进行数据库操作
【 在 alexnotman (halu) 的大作中提到: 】
: 刚开始做web程序,不懂得太多,大家见谅
RAV4   (hehe)2018-12-06 09:46:36
你这么做没问题
【 在 alexnotman (halu) 的大作中提到: 】
: 刚开始做web程序,不懂得太多,大家见谅
poikilotherm   (呆子)2018-12-06 10:19:11
感觉你这个已读的状态没必要
【 在 alexnotman 的大作中提到: 】
: 刚开始做web程序,不懂得太多,大家见谅
alexnotman   (halu)2018-12-06 10:46:16
如果csv会被删掉就有必要了吧
【 在 poikilotherm 的大作中提到: 】
: 感觉你这个已读的状态没必要
poikilotherm   (呆子)2018-12-06 10:51:13
那他这没必要每次都读文件了吧? 楼主给的信息有限,不好判断
【 在 alexnotman 的大作中提到: 】
: 如果csv会被删掉就有必要了吧
here080   (hero080)2018-12-06 13:01:47
不是一个transaction的话理论上总有可能出现不一致。
【 在 alexnotman (halu) 的大作中提到: 】
: 标 题: 问个简单的问题
chenjinyuan   (心梦如水)2018-12-06 13:47:01
所以二楼明明是标准答案
你们后面一串纠结啥呢
【 在 here080 的大作中提到: 】
: 不是一个transaction的话理论上总有可能出现不一致。
:
shocker   (\\(^o^)\/~)2018-12-06 15:33:42
题外话,二楼到底是从0层开始算还是从1层开始算。
水木页面来看似乎从0开始的。
【 在 chenjinyuan 的大作中提到: 】
: 所以二楼明明是标准答案
chenjinyuan   (心梦如水)2018-12-07 00:39:25
无言以对
【 在 shocker 的大作中提到: 】
: 题外话,二楼到底是从0层开始算还是从1层开始算。
chuchentuosu   (chuchentuosu)2018-12-08 10:46:34
既然已经持久化成本地文件了,另启一个服务通过接口逐条或者批量拉就可以了,offset可以持久化到硬盘或者放在zookeeper里,这其实和metaq或者rocketmq的机制比较像,本质上类似于声明式编程,把一个长尾的容易出错的命令式链路拆分成几段,通过声明的事务性持久化来减少对命令式事务的依赖,存数据库和发送请求就好比是两个消费者
【 在 alexnotman 的大作中提到: 】
:
#发自zSMTH@M5s
--
※ 来源:水木社区 [115.199.109.*(浙江杭州)]
#修改自zSMTH@M5s
alexnotman   (halu)2018-12-08 11:04:10
谢谢,虽然我看不大懂哈哈,我来学习学习。
【 在 chuchentuosu 的大作中提到: 】
: 既然已经持久化成本地文件了,另启一个服务通过接口逐条或者批量拉就可以了,offset可以持久化到硬盘或者放在zookeeper里,这其实和metaq或者rocketmq的机制比较像,本质上类似于声明式编程,把一个长尾的容易出错的命令式链路拆分成几段,通过声明的事务性持久化来减少对命令式事务的依赖,存数据库和发送请求就好比是两个消费者

水木社区