海关申报系统心得

海关申报系统的流程是:
1. 每个海关开一个进程,从数据库中捞取数据。
2. 海关进程取到数据后,先解析回执,再进行申报,这样的目的是防止程序中途崩溃的话,至少可以将回执解析,回执解析的不成功会造成雪崩
以上的模型有一个问题,当数据量大的时候,选取数据需要非常久,可能这个时间都已经到达了雪崩的窗口期,每次数据还没有选完,后面数据就开始重推,所以需要在选取申报数据之前就解析回执,这一点在数据量不大的时候是完全察觉不出来的

ftp上传脚本

ftp上传看起来是个很简单的问题,但是本人在这上面踩了非常多的坑。
程序流程是这样:
1. 脚本开始运行,先将对方服务器上的回执拉取到本地(用ftp中的mget ,delete ),供批跑程序解析,拉取后删除
2. 将指定目录下的报文上传到对方服务器,供对方程序读取解析。这些报文对方在读取之后会被对方程序删掉,无需关心。

ftp上传下载脚本有以下几点坑
1. ftp每次执行命令时,会出现mget 时的数据与mdelete 时的数据集合不相同的情况。比如执行mget 花费了10分钟,这10分钟之内又产生了新的文件,再执行delete 时这些文件就被删除了,并且没有被拉取下来。
2. 由于我们是有两台机器一起运行以分担压力,并用作容灾,两台机器上的脚本如果同时运行,会出现两台机器重复拉取到同一份回执文件,并且,会出现同时删除

海关申报系统心得

海关申报系统的流程是:
1. 每个海关开一个进程,从数据库中捞取数据。
2. 海关进程取到数据后,先解析回执,再进行申报,这样的目的是防止程序中途崩溃的话,至少可以将回执解析,回执解析的不成功会造成雪崩
以上的模型有一个问题,当数据量大的时候,选取数据需要非常久,可能这个时间都已经到达了雪崩的窗口期,每次数据还没有选完,后面数据就开始重推,所以需要在选取申报数据之前就解析回执,这一点在数据量不大的时候是完全察觉不出来的

ftp上传脚本

ftp上传看起来是个很简单的问题,但是本人在这上面踩了非常多的坑。
程序流程是这样:
1. 脚本开始运行,先将对方服务器上的回执拉取到本地(用ftp中的mget ,delete ),供批跑程序解析,拉取后删除
2. 将指定目录下的报文上传到对方服务器,供对方程序读取解析。这些报文对方在读取之后会被对方程序删掉,无需关心。

ftp上传下载脚本有以下几点坑
1. ftp每次执行命令时,会出现mget 时的数据与mdelete 时的数据集合不相同的情况。比如执行mget 花费了10分钟,这10分钟之内又产生了新的文件,再执行delete 时这些文件就被删除了,并且没有被拉取下来。
2. 由于我们是有两台机器一起运行以分担压力,并用作容灾,两台机器上的脚本如果同时运行,会出现两台机器重复拉取到同一份回执文件,并且,会出现同时删除