Netty: Event Loop Group и пользовательские события - PullRequest
0 голосов
/ 04 июля 2018

Могу ли я использовать группу событий netty для выполнения пользовательской задачи? Мне требуется та же функциональность, что и для канала сокета, то есть я хочу зарегистрировать свой объект в цикле обработки событий и снова и снова выполнять его в определенном потоке?

1 Ответ

0 голосов
/ 07 июля 2018

Конечно, вы можете сделать это. Это так же просто, как получить EventLoop из Channel и затем использовать любой из предоставленных ScheduledExecutorService методов, которые он реализует. При этом вам необходимо убедиться, что вы не выполняете никаких блокирующих вызовов в этих запланированных задачах, так как в противном случае вы заблокируете EventLoop, и на EventLoop не может произойти ввод-вывод до тех пор, пока задача не завершится (что повлияет на все Channel s). которые используют это EventLoop).

Например, вот как вы должны выполнить задачу в EventLoop:

EventLoop loop = channel.eventLoop();
loop.execute(() -> {
    // Do something.
});
...