借助apache来实现下载后台程序导出的excel文件

在pb客户端模式需要查询客户详单,因为详单是分布在几十台通讯主机上面,前台只是发送一条申请记录,数据录入时触发器写一个标记文件到后台服务程序的目录中,后台程序timer(3)进行检查(这样不用扫描数据库,减少不必要的压力)。

因为详单的数量可能比较大,又因为pb无线程模式,所以开启十个进程来做这个事情。timer事件中发现有新的查询申请时,先update进程ID进去(1-10编号)给申请记录(update 申请单 set procid = :procid where recid = :recid and state=0 and procid=0)。如果sqlca.nrows=1表明这个进程抢到了这条申请,回写一个状态和提醒(某个进程执行导出...)。然后执行查询。因为详单是按天分表的,每次读取一天的数据放入一个ds中,最后得到整个月的详单,然后用ds本身的导出功能(比dw2xls效率高,只是按网上的例子做出了有表头的导出函数)。存的excel尺寸非常大,我安装winrar,用命令模式将excel压缩成rar格式(这样小到几十K,数百K)放入磁盘。

之前在局域网有另外一台安装有apache。我最初幼稚地认为可以放入另外一台电脑上apache目录。但是发现只有在登录状态,或者远程桌面登录时,网络磁盘映射才可以用,一旦退出远程桌面,程序无法向映射的网络盘写文件。最后只能在本机再安装一个apache。为了简单,用的是appserv安装,apche开启6000端口,外部路由器将60000映射到本机6000。这样:后台导出excel并压缩完成后,回写记录的状态为1,并给出下载路径。客户端间隔5-10秒刷新申请记录。如果状态为1,下载按钮的visible出现,客户可以下载了。如果所有的申请记录状态都为1了,就timer(0)停止刷新。实际使用效果还行,整合了几十台服务器的查询到客户端一个入口。

另外后期适当扩宽一个手机网页用的界面,也可以用这个申请数据从手机端下载详单。

给的我的感觉是http协议比较稳定而且通俗。想比自己实现(用socket方式实现)要好一些。

记得apache配置禁止浏览目录。这样只有客户端指定的路径才能被访问到。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值