spring 云流 3.0 存在生产者问题
There are producer issues with spring cloud stream 3.0
我阅读了有关 spring 云流 3.0 的文档,了解新使用 java.util.function。[Supplier/Function/Consumer] 来表示生产者、消费和生产、消费者,以及这应该是正确的。
但是我不了解Supplier。
文档指出,供应商轮询用于一致地为供应商生成数据,不需要程序参与。
但很多时候,我们需要在特定的时间生成一个数据,比如一个网络请求,我找不到任何相关的文档或例子。
注入 Supplier 对象并调用 get() 方法可能很简单,但是如何禁用轮询调用?
感谢所有提供信息的人。
我们将更新我们将在几周内发布的 SR1 文档,但这里是完整的代码,演示了如何完成您所描述的内容。我们依赖项目反应器中的 EmitterProcessor:
@SpringBootApplication
@Controller
public class WebSourceApplication {
public static void main(String[] args) {
SpringApplication.run(WebSourceApplication.class);
}
EmitterProcessor<String> processor = EmitterProcessor.create();
@RequestMapping
@ResponseStatus(HttpStatus.ACCEPTED)
public void delegateToSupplier(@RequestBody String body) {
System.out.println("Sending " + body);
processor.onNext(body);
}
@Bean
public Supplier<Flux<String>> supplier() {
return () -> processor;
}
}
然后是and then curl -H "Content-Type: text/plain" localhost:8080/ -d Hello
我阅读了有关 spring 云流 3.0 的文档,了解新使用 java.util.function。[Supplier/Function/Consumer] 来表示生产者、消费和生产、消费者,以及这应该是正确的。
但是我不了解Supplier。
文档指出,供应商轮询用于一致地为供应商生成数据,不需要程序参与。
但很多时候,我们需要在特定的时间生成一个数据,比如一个网络请求,我找不到任何相关的文档或例子。
注入 Supplier 对象并调用 get() 方法可能很简单,但是如何禁用轮询调用?
感谢所有提供信息的人。
我们将更新我们将在几周内发布的 SR1 文档,但这里是完整的代码,演示了如何完成您所描述的内容。我们依赖项目反应器中的 EmitterProcessor:
@SpringBootApplication
@Controller
public class WebSourceApplication {
public static void main(String[] args) {
SpringApplication.run(WebSourceApplication.class);
}
EmitterProcessor<String> processor = EmitterProcessor.create();
@RequestMapping
@ResponseStatus(HttpStatus.ACCEPTED)
public void delegateToSupplier(@RequestBody String body) {
System.out.println("Sending " + body);
processor.onNext(body);
}
@Bean
public Supplier<Flux<String>> supplier() {
return () -> processor;
}
}
然后是and then curl -H "Content-Type: text/plain" localhost:8080/ -d Hello