优化通知缓存处理
This commit is contained in:
parent
33dc75439d
commit
2227defc5f
|
|
@ -49,7 +49,6 @@ public class DefaultNotifierManager implements NotifierManager, BeanPostProcesso
|
|||
.map(notifier -> new NotifierEventDispatcher<>(eventBus, notifier))
|
||||
.flatMap(notifier -> Mono.justOrEmpty(notifiers.put(properties.getId(), notifier))
|
||||
.flatMap(Notifier::close)//如果存在旧的通知器则关掉之
|
||||
.onErrorContinue((err, obj) -> log.error(err.getMessage(), err))//忽略异常
|
||||
.thenReturn(notifier));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package org.jetlinks.community.notify.manager.service;
|
|||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.hswebframework.web.crud.events.EntityDeletedEvent;
|
||||
import org.hswebframework.web.crud.events.EntityModifyEvent;
|
||||
import org.hswebframework.web.crud.events.EntitySavedEvent;
|
||||
import org.jetlinks.community.notify.NotifierManager;
|
||||
import org.jetlinks.community.notify.manager.entity.NotifyConfigEntity;
|
||||
import org.jetlinks.community.notify.manager.entity.NotifyTemplateEntity;
|
||||
|
|
@ -10,6 +11,7 @@ import org.jetlinks.community.notify.template.TemplateManager;
|
|||
import org.springframework.context.event.EventListener;
|
||||
import org.springframework.stereotype.Component;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
|
@ -26,40 +28,61 @@ public class NotifierCacheManager {
|
|||
this.notifierManager = notifierManager;
|
||||
}
|
||||
|
||||
@EventListener
|
||||
public void handleTemplateSave(EntitySavedEvent<NotifyTemplateEntity> event) {
|
||||
event.async(
|
||||
reloadTemplate(event.getEntity())
|
||||
);
|
||||
}
|
||||
|
||||
@EventListener
|
||||
public void handleTemplateModify(EntityModifyEvent<NotifyTemplateEntity> event) {
|
||||
reloadTemplate(event.getBefore());
|
||||
event.async(
|
||||
reloadTemplate(event.getBefore())
|
||||
);
|
||||
}
|
||||
|
||||
@EventListener
|
||||
public void handleTemplateDelete(EntityDeletedEvent<NotifyTemplateEntity> event) {
|
||||
reloadTemplate(event.getEntity());
|
||||
event.async(
|
||||
reloadTemplate(event.getEntity())
|
||||
);
|
||||
}
|
||||
@EventListener
|
||||
public void handleConfigSave(EntitySavedEvent<NotifyConfigEntity> event) {
|
||||
event.async(
|
||||
reloadConfig(event.getEntity())
|
||||
);
|
||||
}
|
||||
|
||||
@EventListener
|
||||
public void handleConfigModify(EntityModifyEvent<NotifyConfigEntity> event) {
|
||||
reloadConfig(event.getBefore());
|
||||
event.async(
|
||||
reloadConfig(event.getBefore())
|
||||
);
|
||||
}
|
||||
|
||||
@EventListener
|
||||
public void handleConfigDelete(EntityDeletedEvent<NotifyConfigEntity> event) {
|
||||
reloadConfig(event.getEntity());
|
||||
event.async(
|
||||
reloadConfig(event.getEntity())
|
||||
);
|
||||
}
|
||||
|
||||
protected void reloadConfig(List<NotifyConfigEntity> entities) {
|
||||
Flux.fromIterable(entities)
|
||||
.map(NotifyConfigEntity::getId)
|
||||
.doOnNext(id -> log.info("clear notifier config [{}] cache", id))
|
||||
.flatMap(notifierManager::reload)
|
||||
.subscribe();
|
||||
protected Mono<Void> reloadConfig(List<NotifyConfigEntity> entities) {
|
||||
return Flux.fromIterable(entities)
|
||||
.map(NotifyConfigEntity::getId)
|
||||
.doOnNext(id -> log.info("clear notifier config [{}] cache", id))
|
||||
.flatMap(notifierManager::reload)
|
||||
.then();
|
||||
}
|
||||
|
||||
protected void reloadTemplate(List<NotifyTemplateEntity> entities) {
|
||||
Flux.fromIterable(entities)
|
||||
.map(NotifyTemplateEntity::getId)
|
||||
.doOnNext(id -> log.info("clear template [{}] cache", id))
|
||||
.flatMap(templateManager::reload)
|
||||
.subscribe();
|
||||
protected Mono<Void> reloadTemplate(List<NotifyTemplateEntity> entities) {
|
||||
return Flux.fromIterable(entities)
|
||||
.map(NotifyTemplateEntity::getId)
|
||||
.doOnNext(id -> log.info("clear template [{}] cache", id))
|
||||
.flatMap(templateManager::reload)
|
||||
.then();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue