定时任务优化总结(从半个小时优化到秒级)
💡
原文中文,约11000字,阅读约需27分钟。
📝
内容提要
本文介绍了一个站外广告投放平台在优化定时任务过程中遇到的问题和解决方案,包括按需查询、分批次游标查询、按数据库分片分组更新、精准定位数据等。通过引入定时任务和优化查询方式,减少了数据库交互次数和任务执行时间。同时,通过冗余数据和按时间戳查询的方式,减少了无效数据查询和计算。最后,通过分发任务到不同机器上执行,消除了单台机器CPU不稳定的问题。优化后,CPU利用率和查询次数都有明显改善。
🎯
关键要点
- 站外广告投放平台在优化定时任务时引入了四个定时任务。
- 定时任务包括单元时间段更新、计划时间段更新、单元预算撞线恢复和计划预算撞线恢复。
- 通过按需查询和分批次游标查询,减少了数据库交互次数和任务执行时间。
- 优化后,CPU利用率和查询次数都有明显改善。
- 引入冗余数据和按时间戳查询,减少无效数据查询和计算。
- 通过分发任务到不同机器上执行,消除了单台机器CPU不稳定的问题。
- 优化过程中,使用游标查询和按数据库分片进行批量更新,提升了效率。
- 在优化后,任务执行时间从五分钟降至30秒,CPU利用率降至60%。
- 增加next_time字段以减少无效数据查询,进一步优化查询效率。
- 最终优化后,CPU利用率仅增加1%,查询数据库次数减少至200次。
➡️