Boa tarde!
Na aula "Criando o nosso subscriber" do curso "Novidades do Java: Produtividade com novos recursos" o professor ensina como criar nosso próprio subscriber, para isso devemos implementar a Interface Subscriber.
Meu código ficou assim:
package br.com.alura.subscriber;
import br.com.alura.model.NotaFiscal;
import br.com.alura.wsclient.NotaFiscalWSClient;
import jdk.jshell.JShell;
import java.util.concurrent.Flow;
import java.util.concurrent.Flow.Subscriber;
public class NotaFiscalSubscriber implements Subscriber<NotaFiscal> {
Flow.Subscription subscription;
@Override
public void onSubscribe(Flow.Subscription subscription) {
System.out.println("Chamando o onSubscribe");
this.subscription = subscription;
this.subscription.request(2);
}
@Override
public void onNext(NotaFiscal item) {
NotaFiscalWSClient nfwsc = new NotaFiscalWSClient();
nfwsc.enviar(item);
}
@Override
public void onError(Throwable throwable) {
throwable.printStackTrace();
}
@Override
public void onComplete() {
System.out.println("Todas as Notas foram emitidas!");
}
}Mas eu realizei testes aqui e percebi que o método enviar está sendo chamado em uma única Thread, alguém faz ideia de como definir um ThreadPool para ser utilizado na Subscriber que criamos?