根据条件拆分事件并按顺序处理

时间:2016-09-26 13:15:22

标签: project-reactor

遇到以下问题:给定一个具有partitionId属性的事件列表(例如0-10),我希望根据paritionId拆分传入事件,以便按顺序处理具有相同partitionId的事件收到了。 通过或多或少的均匀分布,这将导致并行处理10个事件(对于每个分区)。

除了创建10个单线程调度程序并将事件发送给正确的调度程序之外,有没有办法使用Project Reactor完成上述操作?

感谢。

1 个答案:

答案 0 :(得分:0)

以下代码

  • 将源流拆分为分区
  • 创建ParallelFlux,每个分区一个“轨道”,
  • 将“rails”安排到单独的线程中,
  • 收集结果

为每个分区保留专用线程,保证其值按原始顺序处理。

 function init() {
var distanceY = window.pageYOffset || document.documentElement.scrollTop,
                shrinkOn = 50,
                header = document.querySelector("header");
    window.addEventListener('scroll', function(e){

        if (distanceY > shrinkOn) {
            classie.add(header,"smaller");
        } else {
            if (classie.has(header,"smaller")) {
                classie.remove(header,"smaller");
            }
        }
         });

         document.getElementById("yourdiv").addEventListener('click', function(e){
                 if (classie.has(header,"smaller")) {
                classie.remove(header,"smaller");
            }
        });
}
window.onload = init();