假设我在队列中有大量用户,我会定期根据速率限制的API 查询每个用户。查询完所有用户后,将重新启动该过程。应用了速率限制,因此我无法在合理的时间内检查所有用户(> 1 天检查每个人)。
每次我检查用户时,我都能检查他们上次活动的时间。如果用户最近很活跃(比如说最近几天),那么他们应该优先于根本不活跃的用户(> 一年)。但是,查询到非活动用户的概率仍然应该大于0。关于如何有效地管理这个队列,是否有任何现有的研究/方法?
目前我在想的是做一个简单的优先级队列,并让用户的初始值是他们最后一次活动的时间。任何时候查询用户时,他们在队列中的位置都会替换为他们最后一次活动的日期 + 从分布中生成的一些随机数,以便最终可以检查所有用户。