Olá George, tudo bem?
Sim, é possível paralelizar a execução do Subscriber utilizando o SubmissionPublisher. No caso de diferentes Subscriber, como você mencionou, é possível utilizar o método subscribeOn
para executar em diferentes threads.
No entanto, no caso de um mesmo Subscriber, é necessário ter cuidado para não gerar conflitos. Uma opção seria utilizar o método observeOn
para especificar em qual thread o Subscriber deve ser executado. Dessa forma, é possível garantir que o Subscriber será executado de forma paralela, mas sem gerar conflitos.
Por exemplo, suponha que você tenha duas threads executando o mesmo Subscriber:
SubmissionPublisher<NotaFiscal> publisher = new SubmissionPublisher<>();
// Thread 1
publisher.observeOn(Schedulers.computation()).subscribe(new MeuSubscriber());
// Thread 2
publisher.observeOn(Schedulers.computation()).subscribe(new MeuSubscriber());
Nesse caso, o Subscriber será executado em diferentes threads, garantindo a paralelização da geração de notas fiscais.
Espero ter ajudado e bons estudos!