我正在建立一个网站。它有用户可以加入的组。
此组与“正常”组之间的区别在于成员资格是临时的 - 当用户加入组时,他决定成员资格的长度:5 天、一周、2 周等(选择是预定义的)。或者可能所有的会员资格都可以设置为相同的长度——比如一周——如果这样可以让事情变得更简单。
我想对每个组的成员数量进行统计。该数字不需要精确到最后一秒。但它也不能太过时——比如说,应该每天更新一次。
计算成员数量的“明显”方法似乎是运行一项 cron 作业,例如每天,并逐个检查每个组的每个成员。如果成员资格已过期,请将该成员从组中删除,并将组的成员计数减 1。
这种方法似乎非常低效且不可扩展。如果有大量的组,这可能需要很长时间。
你能想出更好的方法来做到这一点吗?成员计数不需要精确到最新的秒数。它可能是近似的并且(稍微)过时。此外,如果有所不同,所有成员资格都可以设置为相同的长度,比如一周。