后台定时任务生成报表数据该怎么办?

发布于 2022-09-05 05:41:22 字数 521 浏览 27 评论 0

现在有一个需求,要每天对MySQL里的数据,按需要的条件统计并生成新的数据。

在若干种方法中:

1.通过Mysql事件调度器(Event Scheduler),Mysql定时自己执行
2.通过MySQL Trigger, log数据表每次插入时执行整理操作
3.通过编程语言连接数据库,在编程语言中整理数据并插入数据表,同时用守护进程运行这个程序。
前两种方法可以比较好的保证数据的完整性,但是统计数据量比较大,SQL的编写也比较有难度。

方法3相对灵活,但是需要额外维护,还需要对异常情况做很多额外处理。

哪种方法比较好?

并且最后的数据经过简单处理可以直接把结果存放到redis中供前端通过api调取,
定时生成新数据存入mysql,然后需要的时候api去调用mysql中的新数据生成结果供前端调用,还是定时生成新数据直接计算结果存入redis,这一点我也比较纠结

请教一下有类似需求的同学都是如何实现的?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

阪姬 2022-09-12 05:41:22

shell+crontab

ˉ厌 2022-09-12 05:41:22

我应该会选择第三种:自己写脚本来进行数据处理。 然后用crontab定时执行这个脚本。

月下凄凉 2022-09-12 05:41:22

建议方案3,自己在应用中写定时任务,如果能确认数据每天都查询,直接在应用程序中放到redis中。

方案2Trigger的方案,是实时数据处理,对系统的写入性能有影响,只有在做实时统计的时候才考虑。而且事务不好控制,原则上汇总数据如果处理失败,不应该影响正常的业务功能。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文