lowkiq:有序的后台作业处理 源码
洛基克 有序的后台作业处理 基本原理 在处理来自边系统的消息时,使用Sidekiq遇到了一些问题。 例如,消息是特定时间的订单数据。 每次更改时,辅助系统都会发送订单的新数据。 订单经常更新,并且队列中包含一些位置相同的消息。 Sidekiq不保证严格的消息顺序,因为一个队列由多个线程处理。 例如,我们已经收到2条消息:M1和M2。 Sidekiq处理程序开始并行处理它们,因此可以在M1之前处理M2。 此类消息的并行处理可能导致: 僵局 用旧数据覆盖新数据 通过避免在一个实体中进行并行任务处理,已经创建了Lowkiq来消除此类问题。 描述 Lowkiq的队列是可靠的,即Lowkiq保存有关正在处理的作业的信息,并在启动时将未完成的作业返回到队列。 队列中的作业按预先指定的执行时间排序,因此它们不是FIFO队列。 每个作业都有其标识符。 Lowkiq保证具有相同ID的作业由同一线程
用户评论