我有一项任务是优化统计视图的显示,在计算过程耗时的情况下加载很长时间。要显示的每个值都需要从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
}