Mik*_*ter 11 sql wcf asynchronous
我有一个有趣的问题要解决.我的一位客户让我开发了一个库存分析程序,该程序具有近千年符号的近50年库存数据.我已经开发了一系列过滤器,可以在任何一天使用,看看是否有什么东西可以用于交易.
我们希望为每个库存的每天数据运行此过滤器.基本上是您的开始和结束日期类型报告.但是,每个符号需要每周过滤6分钟.我们计算大约40个小时左右来运行整个数据集的报告.
最重要的要求是我的客户能够在任何地方从任何计算机上做任何事情(他经常旅行),所以我们是基于浏览器的.
为了解决这个问题,我编写了一个运行此报告的异步方法,但应用程序池不活动计时器将终止该作业.我不想开始调整整个应用程序的超时以支持这一个报告(我们将做很多这样的事情,因为每个库存场景需要在我们的整个数据集上运行以进行分析才能用于积极交易).
有没有人对支持超长期异步过程的Web架构有任何一般想法或经验?
谢谢
Kie*_*one 17
作为一般建议,我建议使用独立的Windows服务,控制台应用程序或类似的非常小心的生命周期控制和日志记录,这将持续运行并检查(轮询)数据库中的"作业进行处理",然后使用结果更新数据库进度信息.
它可能不是最好的方式,但我多次使用它,它可靠,可扩展,性能良好.
最好将Web请求保持一分钟或两分钟 - 它们从未设计用于繁重的处理时间.这样,您可以每分钟左右"检入"作业状态(使用Web服务).
如果您对我有任何疑问或想法,请发表评论我很乐意提供帮助,详细说明或建议..
希望有所帮助!
(附加:我认为Windows服务未得到充分利用!只需一个快速的基类或可重复使用的帮助方法集合,您就可以在您的控制下运行一个记录的,可靠的,自动的,可配置的,快速实现的流程.原型也是!)
听起来你正在直接针对这些数据进行SQL查询.您是否考虑过将数据加载到例如SQL Server Analysis Services并使用(对于初学者)时间,库存和符号维度设置多维数据集?根据查询的性质,您可能会进入相当合理的响应时间.关系数据库适用于在线事务处理(在某些负载和响应时间参数内),但分析工作有时需要数据仓库的方法和技术.(或者,也许是关联数据库......还有替代方案.)
但是,考虑到Murphy,你可能会有一些长时间运行的查询.不同最终用户的数据是否有所不同?如果没有,为什么不预先计算答案呢?没有什么基于http应该花费超过一分钟来处理,如果在那 - 至少不是设计!
| 归档时间: |
|
| 查看次数: |
644 次 |
| 最近记录: |