对于地面站的一些数据,每天要进行检查后分发到各个服务器,以供不同部门进行处理。一天24小时不停歇,对于这种情况,就要开始考虑自动化处理了,那么如何来实现这个自动化处理,同时在自动化处理中,假如连接不上数据库,那么又该如何操作,以不影响程序的运行,毕竟这种程序是365*24的运行,开发维护人员不可能随时都在位置上。

       今天我们就先探讨一下这个自动化实现的第一步:如何实现这么自动归档(备份)迁移功能:


一、思路分析


1.用户提前设置好迁移、归档的路径;这个写到配置文件中,这样每次启动后直接读取配置文件;

2.界面设计是这样的:我有一个主界面,其他每个功能界面,我都用的自定义控件。这样自动任务这个界面,其实也就是一个大的自定义控件。由于开始设计的每次启动一个界面,便把这个界面进行初始化。我想让它可以自动执行外,还不影响其他功能窗体的使用,那么这里我把backgroundworker这个控件放到了主界面上,设置一个全局变量,判断用户是否已开启了自动扫描;方便在系统退出的时候进行判断等一系列操作

3.用户需要手动创建任务,任务是要写入到数据库任务表中的;具体的扫描paf文件以及imi文件是否完整是否被占用代码,就不做过多介绍了,这里我添加了一个优化,因为数据量很大,每次的扫描会因为卫星还没有完全拍照结束,imi文件不完整的可能性很大,为减少它的扫描过程时间,我进行了记录这个任务当前扫描到的景数,下次扫描的时候,根据这个记录继续向下扫描即可。

4.在文档迁移完毕后,为了下一步的生产,后面有其他系统在不断扫描该目录下的文件夹,就需要在每次迁移结束后添加一个标记文件,比如添加紧急、完成这种标记文件。

5.具体文件归档迁移规则以及实现代码,这里不做过多介绍,倘若您想看源码,直接博客留言即可。