值更改时运行计算任务

时间:2017-10-30 08:44:04

标签: java hibernate tsql optimization aop

我有一项任务是优化统计视图的显示,在计算过程耗时的情况下加载很长时间。要显示的每个值都需要从db中获取一些数据,收集它们,过滤并进行除法。

我的想法是创建表格'统计数据'准备好这些值以便在加载时不需要计算(只有获取值更快)但...... 结果统计可以更改来自项目的很多地方。

AOP允许我在应用程序发生更改后在后台运行任务(例如,在运行函数updateValue()之后运行calculateStats()方法)以及' Stats'中的值。表正在更新,但它看起来很难处理代码中的所有位置,并发现它们通知并重新计算统计数据。我想出最简单的方法就是'当tableA中的rowA和columnB的行改变时,运行此函数'。这将使我确信我不会忽视任何事情,当在项目中制作其他功能时,不需要记住并提出问题'运行此功能后我是否需要重新计算统计数据?&# 39;

我的问题是: 是否有任何良好的实践和工具可以通知tableA中的更改并运行一些异步后台函数?

示例:

表A:
    id columnA columnB
    1 foo bar

update TableA set columnA = 'foo1' where id = 1

项目的上述变更应运行方法:

void recalculateStats(int id, string colA) {
  //some operations
}

0 个答案:

没有答案