有一个结算佣金的场景,目前有十几万用户,需要每天同时给每个用户结算佣金,该怎么做能够非常快速的做完这个处理,yii框架,目前的时间是半个小时左右
有一个结算佣金的场景,目前有十几万用户,需要每天同时给每个用户结算佣金,该怎么做能够非常快速的做完这个处理,yii框架,目前的时间是半个小时左右
像这种结算,比较偏IO密集型的业务,适合在系统闲时处理。
任务的话,是推荐多任务的。
你开启10个脚本。
用户id%10 每个脚本处理属于自己的用户。这样任务之间就不会互相干扰
同时要考虑到:结算的时候,用户与用户之间是否会关联,或者对一些数据公共读写,这个就要考虑到锁的问题,还是数据脏读幻读的情况。
批量 事务提交 能快上数倍
我有个程序,一次执行 大概 insert / update 二十来万记录
业务不算很复杂,不用事务大概要超过 45分钟,用事务分批提交,大概在5分钟内
2 回答2.8k 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
1 回答976 阅读✓ 已解决
1 回答906 阅读
1 回答1.3k 阅读
3 回答807 阅读
2 回答860 阅读
做成多个任务多个任务,比如说一共有10w条数据,分成10个任务,每个任务1w条数据。结算时10个任务同时进行。理论上是可以将效率提升10倍,至于怎么分配数据。可以根据id取模,或者其他方式分配数据