前段时间在做一个项目,需要实现用户在WEB页面上传一些文件后台应用程序处理之后将结果返回给用户。
这就涉及到一个WEB页面与后台应用程序实现交互的问题,仔细想想,实现这一效果的方式很多,比如WEB页面在执行操作之后向数据库写一个字段,后台程序轮询数据库,不过这样的方式会造成应用程序频繁的连接数据库,性能上会受到很大的影响。如果数据量庞大的话,性能的损失那是相当大的。
那么我们还有什么好的办法来有效的实现这一交互过程呢,办法当然是有的。
我们知道在C#中有一个fileSystemWatcher类,用于监控指定目录的文件变化情况。我们就通过共享文件的方式来实现这一交互过程。
首先我们来看看需求:
1、当WEB页面执行某一操作时候通知后台应用程序
2、后台应用程序在接收到WEB页面处理请求之后处理问题并将结果反馈给WEB页面
好,就这两点。
实现方式
步骤1,WEB页面执行某一操作之后在指定目录生成文件,并且轮询某一特定文件的值。
步骤2,后台程序应用fileSystemWatcher类监控这一共享目录的文件变化情况,监控到生成了新的文件之后执行预定的处理流程
步骤3,后台应用程序处理完成,改写步骤一中特定文件的值。
步骤4,当特定文件的值变化之后根据值内容反馈给用户。