我们正在为我们的平台构建一个Push API,并希望它每分钟推出大量的Webhook事件(数量可能在数千个左右)。有可能会在毫秒内创建两个相同的事件,我们希望将这些事件聚合在一起。
目标:
1.尽可能地聚合相同的事件,以便2个或更多此类事件的到来只会生成一个作业。 2.从创建作业的客户端中删除聚合责任。
话虽如此,在一个拥有16个进程排队作业的设置中,使用Redis排序集是否有用?
我考虑使用时间戳作为分数,并通过以下命令不断“弹出”项目:
目标:
1.尽可能地聚合相同的事件,以便2个或更多此类事件的到来只会生成一个作业。 2.从创建作业的客户端中删除聚合责任。
话虽如此,在一个拥有16个进程排队作业的设置中,使用Redis排序集是否有用?
我考虑使用时间戳作为分数,并通过以下命令不断“弹出”项目:
MULTI
ZRANGE queue 0 {demand - 1}
ZREMRANGEBYRANK queue 0 {demand - 1}
EXEC
但我不确定性能成本或其他考虑因素。有人会推荐这么做吗?我觉得在这里使用排序集合是有道理的。