日期:2014-05-19  浏览次数:21073 次

如何在web服务器上自动运行程序
我正在做一个工控行业应用的B/S系统,我想服务器程序自动在后台定时采集一些数据放到内存缓冲区,用户用浏览器看到的只是内存中的数据。这样就避免了开一个用户就采一次数据导致重复频繁采集的问题。请问我的设想可以实现吗?用什么方法实现呢?请各位指点

------解决方案--------------------
内存文件,可以实现,但是要考虑的东西很多。
期待高手给出更优解。
------解决方案--------------------
写一个Windows服务,服务内维持一个cache,就可以完成你的要求
你的web程序,访问数据,就直接通过这个windows服务访问
------解决方案--------------------
asp.net可以直接用cache

你也可以 保存到 Application 对象里面
------解决方案--------------------
asp.net可以直接用cache

你也可以 保存到 Application 对象里面

不过还是建议你放到Cache里面,就是缓存,还可以设置过期策略.
------解决方案--------------------
数据不大的情况放在cache里面

数据量太大放cache不现实,还是得放数据库了


------解决方案--------------------
取决于所采集的数据更新是否频繁。如果不频繁可以用缓存,更完备的方案是加上缓存依赖的考虑,如果数据更新,能够有个触发机制,引起数据的重新采集,更新缓存。但这个要看实际情况,能否实现不一定。
用户用浏览器看到的本来就是内存中的数据,不管你这数据怎么来的。
数据库的数据也要读到内存中先。

------解决方案--------------------
写一个静态类, 在 Global.asax.cs 文件中定义一个 timer, 并在 Application_Start() 方法中 启动需要的动作.
------解决方案--------------------
理想的设计是在WEB SERVER与工控系统间设一个中间层,
叫应用服务器也好,实时数据库也好,
WEB向它要数据,它则定期向工控系统要数据。
若是实时性要求不高,一般的数据库可能也行。