对账表有时下载下来是空的,有时和昨天不是同一份数。外卖系统搭建部署到自己的机器之后,要先问对账数据放在哪一台,而不是先怀疑财务看错了行。
一、订单在业务库,表从业务库生成
已完成和未完成的订单都放在业务库那台机器上。对账表是临时生成的文件,不是另一套订单。生成时只读业务库,把符合条件的行写成文件,放到客户指定的目录。目录不在实施人员的个人电脑上。
页面机器只负责点「导出」这个动作。导出过程中页面机器可以中转,但文件的来源必须是业务库的当前数据。来源如果是某台页面自己的缓存,高峰时会导出一份过时的数。
二、不要把对账文件当成第二本账
有的部署会把每次下载的文件再导入另一台机器,当成可以修改的账本。文件一旦被改,就和业务库分家。第二天业务库变了,文件没变,两边永远对不上。对账文件只作当次留存,需要更正时回到业务库查单号,再重新生成。
留存的文件要带生成时间,并写明取数条件:只含已完成、不含试单、按完成时间切日。没有这些字,下周无法证明这份文件当时在说什么。
三、生成文件的机器要能被客户打开
第三台容易被忽略的是放文件的机器。它应在客户自己的网络里,财务用后台账号登录统一后台就能下到。不要生成在只有实施人员能进的目录。私有化部署的意义,就是源码、数据库和这些导出文件都在客户这边。
磁盘空间要单独看。每天一张表不大,但若把过程日志和导出文件堆在系统盘,盘满之后新文件写不出来,财务会以为今天没有订单。文件目录和系统目录分开,并约定保留多少天。
四、备份业务库,而不是只备份下载目录
只拷走下载目录,恢复之后没有订单明细,只有几张旧表,无法按单号复查。备份的主体是业务库。下载目录可以另拷,作为当时交给财务的原件。恢复演练时,在备用机器上打开一笔旧单,金额应和当时那张表的同一行一致。
备用机器不要长期和正式库一起接单。演练完就停掉,避免两台同时写订单,造成两本账。演练用的库从正式备份恢复,不从空库开始假装有数。
五、多台页面读同一份库
高峰加页面机器时,不要每台页面带一份小库。订单和对账仍只认业务库那一份。页面增多,只是打开和导出的人变多,取到的行应相同。若两个人同一分钟导出,笔数差很多,先查是不是有一台没连到正式库。
连接指到哪一台,要写在部署说明里,用客户能看懂的机器称呼,不要只留在实施人员的草稿上。更换业务库机器时,先停导出,迁完再抽一笔对单号,然后才恢复每天出表。
六、未完成单也在同一库,只是出表时分开
未完成不是放在另一台机器上的「临时单」。它们和已完成在同一业务库,出表时按是否完成分成两个文件。分成两个文件,是为了财务不把未完成加进营收,不是为了把未完成搬到别的库。
生成文件的那一下如果中断,目录里可能留下半份。半份不要交给财务。重新生成前先看业务库是否仍可查,再整份重出,并拿走半份,避免两份笔数不同。文件异常小的,先打开看是不是只有表头。更换业务库机器的当天,暂停每天出表,迁完按单号抽三笔,三笔金额与迁前一致再恢复。迁前的最后一份文件留存,用来和迁后的第一份对笔数。笔数对不上,就先不要恢复每天出表。
光合同城独立部署后,对账数据以客户业务库为准,统一后台生成文件。验收看三处:文件从业务库来、目录客户自己能打开、恢复备份后同一单号金额还在。三处都在,对账才有地方可查。