Оптимизация обработки событий - PullRequest
0 голосов
/ 18 марта 2019

Я использую Oracle Coherence cache в своем компоненте java-сервера.Я подписываюсь и слушаю события изменения кэша, используя следующие обработчики событий:

public void entryUpdated(MapEvent mapEvent) 
        { 
         processUpdateEvent(mapEvent);
        }

public void entryDeleted(MapEvent mapEvent) 
        {
        //processDeleteEvent(mapEvent);
        } 
    public void entryInserted(MapEvent mapEvent) 
        {
             processInsertEvent(mapEvent);
        } 

Иногда мы получаем поток огромного количества событий «обновления» в кэше (события «удаления» или «вставки»)их очень мало) ... и кажется, что наш текущий Java-код недостаточно масштабируем, чтобы справиться с этим сценарием.Таким образом, в результате он отстает в обработке событий.

Я пытаюсь изменить дизайн и оптимизировать этот код.

Одна вещь, которая пришла мне в голову, - это использовать следующий подход,Но я думаю, что это не имеет смысла, так как он будет запускать новый поток для каждого нового события, что снова замедлит общую производительность сервера.Можно ли как-нибудь оптимизировать этот код, пожалуйста?

Thread thread = new Thread(new Runnable() {
                    public void run() {
processUpdateEvent();
                       }
                    });
                thread.start();

Спасибо.

...