Совместное использование LinkedBlockingQueue между потоками, управляемыми контейнером - PullRequest
0 голосов
/ 14 января 2019

У меня есть приложение, в котором у меня есть несколько потоков производителей, которым требуется входная очередь и буфер. В буфере есть наблюдатель, который очищает буфер после достижения определенного предела и помещает пакеты в другую очередь2. Затем Queue2 читается потребителем, который записывает пакеты.

В настоящее время в моей программной архитектуре мне не хватает удобного способа поместить эти очереди и буфер в Runnables, не применяя магию конструктора или сеттер.

Я не могу использовать @Inject, поскольку контекст CDI не распространяется на подпотоки. Можно реализовать его собственный контекст, который делает вещи, аналогичные ApplicationScopedContext, но в настоящее время я не желаю этого делать (если у кого-то есть хороший пример реализации, пожалуйста, дайте мне знать).

Поскольку дерево JNDI распространяется на подпотоки, я подумал об его использовании, но я опасаюсь сериализации, что определенно не то, что мне нужно с очередями.

Итак, мой вопрос: являются ли Объекты, которые связаны в дереве JNDI в ссылках Wildfly 10, или они сериализованы?

...