提交方法:赢得';调用onNext流API JAVA

提交方法:赢得';调用onNext流API JAVA,java,reactive-programming,publish-subscribe,java-9,Java,Reactive Programming,Publish Subscribe,Java 9,我正在学习Java中的FLOW Stream API,目前我正在创建一个基于上一个示例的示例。问题是我看不到预期的输出,只看到在subscribe方法中打印的订阅字符串。我已经检查并找到了StackOverflow,但是没有工作,因为我已经调用了request(Long N) 为什么没有调用onNext方法?您没有将ScheduledExecutorService传递给发布者,该发布者基本上是一个ExecutorService,它可以安排任务在延迟后运行,或者在每次执行之间以固定的时间间隔重复执

我正在学习Java中的FLOW Stream API,目前我正在创建一个基于上一个示例的示例。问题是我看不到预期的输出,只看到在subscribe方法中打印的订阅字符串。我已经检查并找到了StackOverflow,但是没有工作,因为我已经调用了
request(Long N)


为什么没有调用
onNext
方法?

您没有将
ScheduledExecutorService
传递给
发布者,该发布者基本上是一个ExecutorService,它可以安排任务在延迟后运行,或者在每次执行之间以固定的时间间隔重复执行

import java.util.List;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.SubmissionPublisher;

public class Sensor {

    public static void main(String[] args) {
        ScheduledExecutorService executor = Executors.newScheduledThreadPool(Runtime.getRuntime().availableProcessors());
        SubmissionPublisher<String> submissionPublisher = new SubmissionPublisher<>(executor, 5);
        Computer<String> subscriber = new Computer<>();
        submissionPublisher.subscribe(subscriber);

        List<String> items = List.of("1.25", "1.224", "1.55");
        items.forEach(submissionPublisher::submit);
        submissionPublisher.close();
        executor.shutdown();
    }
}
import java.util.List;
导入java.util.concurrent.Executors;
导入java.util.concurrent.ScheduledExecutorService;
导入java.util.concurrent.SubmissionPublisher;
公共类传感器{
公共静态void main(字符串[]args){
ScheduledExecutorService executor=Executors.newScheduledThreadPool(Runtime.getRuntime().availableProcessors());
SubmissionPublisher SubmissionPublisher=新SubmissionPublisher(执行者,5);
计算机订户=新计算机();
submissionPublisher.subscribe(订阅者);
列表项=列表项(“1.25”、“1.224”、“1.55”);
items.forEach(submissionPublisher::submit);
submissionPublisher.close();
executor.shutdown();
}
}

如何配置传递的执行器,以便发布者以固定速率发布?
import java.util.List;
import java.util.concurrent.SubmissionPublisher;

public class Sensor {

    public static void main(String[] args) {
        SubmissionPublisher<String> submissionPublisher = new SubmissionPublisher<>();
        Computer<String> subscriber = new Computer<>();
        submissionPublisher.subscribe(subscriber);

        List<String> items = List.of("1.25", "1.224", "1.55");
        items.forEach(submissionPublisher::submit);
        submissionPublisher.close();
    }

}
SUBSCRIBING
import java.util.List;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.SubmissionPublisher;

public class Sensor {

    public static void main(String[] args) {
        ScheduledExecutorService executor = Executors.newScheduledThreadPool(Runtime.getRuntime().availableProcessors());
        SubmissionPublisher<String> submissionPublisher = new SubmissionPublisher<>(executor, 5);
        Computer<String> subscriber = new Computer<>();
        submissionPublisher.subscribe(subscriber);

        List<String> items = List.of("1.25", "1.224", "1.55");
        items.forEach(submissionPublisher::submit);
        submissionPublisher.close();
        executor.shutdown();
    }
}