Есть проблемы производителя с Spring Cloud Stream 3.0

Я прочитал о документах Spring Cloud Stream 3.0, чтобы понять новое использование java.util.function.[Supplier/Function/Consumer] для представления производителей, потребления и производства, потребителей, и это должно быть правильно.

Но я не понимаю поставщика.

В документации указано, что опрос поставщиков используется для последовательного получения данных для поставщиков, и никакого участия программы не требуется.

Но часто нам нужно сгенерировать данные в определенное время, например веб-запрос, и я не могу найти для этого никакой документации или примеров.

Это может быть так же просто, как внедрение объекта Supplier и вызов метода get(), но как отключить вызов опроса?

Спасибо всем, кто предоставил информацию.

1 ответ

Решение

Мы обновим документацию для SR1, которую мы выпустим через несколько недель, но вот полный код, демонстрирующий, как вы можете выполнить то, что описываете. Мы полагаемся на EmitterProcessor из проекта response:

@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

Другие вопросы по тегам