当前位置: 首页 > 面试题库 >

30小时以上查询的最佳架构

韩瀚
2023-03-14
问题内容

我有一个有趣的问题要解决。我的一位客户让我开发了一个库存分析程序,该程序具有将近50年的库存数据以及近一千个交易品种。我已经开发了一系列过滤器,可在任何一天应用,以查看是否有任何交易失败。

我们希望针对每个库存的每天数据运行此过滤器。基本上,您的开始日期和结束日期类型报告。但是,每个符号每周需要花费6分钟进行过滤。我们估计大约需要40个小时才能对整个数据集运行报告。

首要要求是我的客户能够从任何地方的任何计算机(他经常旅行)在应用程序中执行任何操作,因此我们基于浏览器。

为了解决此问题,我编写了一个异步方法来运行此报告,但是应用程序池不活动计时器将终止该工作。我不想开始为整个应用程序调整超时来支持该报告(我们将做很多这样的工作,因为每个库存场景都需要针对我们的整个数据集运行以进行分析,然后才能用于活跃交易)。

是否有人对支持超长异步过程的Web体系结构有任何一般想法或经验?

谢谢


问题答案:

作为一般建议,我建议使用独立的Windows服务,控制台应用程序或类似的程序,并具有非常仔细的生命周期控件和日志记录,这些控件将不断运行并检查(轮询)数据库中的“要处理的作业”,然后使用结果更新数据库并进度信息。

这可能不是最好的方法,但是我已经使用过很多次了,它可靠,可扩展且具有良好的性能。

最好将网络请求的时间限制在一分钟或两分钟之内-从来没有为处理大量时间而设计。这样,您可以每分钟左右(使用Web服务)“检查”作业状态。

如果您对我有任何疑问或对这个想法有任何疑问,请发表评论,我将很乐意为您提供帮助,详细说明或提出建议。

希望对您有所帮助!

(另外:我相信Windows服务没有得到充分利用!它所需要的只是一个快速的基类或可重用的辅助方法的集合,并且在您的控制下,您可以运行一个已记录,可靠,自动,可配置,快速实施的过程。一起制作原型!)



 类似资料:
  • 问题内容: 我想找出最近一个小时在MySQL数据库中修改过的表。我怎样才能做到这一点? 问题答案: MySQL 5.x可以通过INFORMATION_SCHEMA数据库执行此操作。该数据库包含有关表,视图,列等的信息。 返回最近一个小时内已更新的所有表(UPDATE_TIME)。您还可以按数据库名称(TABLE_SCHEMA列)进行过滤。 查询示例:

  • 我希望执行以下查询: 并期望每张卡有几百个结果,就像你的常规信用卡账单一样。

  • 我们已经看到,较大的页表会导致额外的开销,因为必须将该表分成页面,然后将其存储到主内存中。 我们担心的是执行进程而不是执行页表。 页表为执行过程提供了支持。 页面越大,开销越高。 例如,我们知道 - 将会有100万页这是相当大的数字。 但是,尝试使页面大小更大,例如:2MB。 然后,页表中的页数=(2 X 2 ^ 30)/(2 X 2 ^ 20)= 1K页。 如果比较两种情况,可以知道页面大小与页

  • 问题内容: 什么是在MySQL中获取累计金额的“正确”查询? 我有一张表格,其中保存有关文件的信息,一个列列表包含文件的大小(以字节为单位)。(实际文件保存在磁盘上的某个位置) 我想要这样的累积文件大小: 现在,我使用以下查询来获得以上结果 但是,我的解决方案非常慢。(大约19秒,没有缓存)。 解释给出以下执行细节 我的问题是: 如何优化上述查询? 更新 我已经更新了问题,以提供表结构和使用20,

  • 很抱歉打扰你,但我无法找到一个有效的解决我的问题的方法。我想做一个MongoDB查询,让我得到与SQL查询相同的结果:

  • 我有一个Excel文件,上面有一长串用户名。ColA包含旧用户名ColB包含新用户名。我想在基于excel文件的SQL表中重命名用户。我的问题是:在循环中使用using语句多次调用SQL可以吗?还是有更好的方法,我打开一个连接,让所有的SQL更新查询“一”?