public class DtMessageRouter extends Object
消息路由器,通过代码化的配置,把来自钉钉的消息交给handler处理 说明: 1. 配置路由规则时要按照从细到粗的原则,否则可能消息可能会被提前处理 2. 默认情况下消息只会被处理一次,除非使用DtMessageRouterRule.next()3. 规则的结束必须用DtMessageRouterRule.end()或者DtMessageRouterRule.next(),否则不会生效 使用方法: DtMessageRouter router = new DtMessageRouter(); router .rule() .eventType("eventType") .interceptor(interceptor, ...).handler(handler, ...) .end() .rule() // 另外一个匹配规则 .end() ; // 将DtMessage交给消息路由器 router.route(message);
| 构造器和说明 |
|---|
DtMessageRouter()
构造方法.
|
DtMessageRouter(DtService dtService)
构造方法.
|
| 限定符和类型 | 方法和说明 |
|---|---|
protected Boolean |
doRoute(DtService dtService,
DtEventMessage message,
Map<String,Object> context)
处理消息.
|
Boolean |
route(DtEventMessage message)
处理消息.
|
Boolean |
route(DtService dtService,
DtEventMessage message)
指定由dtService来处理消息
|
Boolean |
route(DtService dtService,
DtEventMessage message,
Map<String,Object> context)
处理消息.
|
DtMessageRouterRule |
rule()
开始一个新的Route规则.
|
void |
setExceptionHandler(DtErrorExceptionHandler exceptionHandler)
设置自定义的
DtErrorExceptionHandler
如果不调用该方法,默认使用 DtLogExceptionHandler
|
void |
setExecutorService(ExecutorService executorService)
设置自定义的
ExecutorService
如果不调用该方法,默认使用 Executors.newFixedThreadPool(100)
|
public DtMessageRouter()
public DtMessageRouter(DtService dtService)
public void setExecutorService(ExecutorService executorService)
设置自定义的 ExecutorService
如果不调用该方法,默认使用 Executors.newFixedThreadPool(100)
public void setExceptionHandler(DtErrorExceptionHandler exceptionHandler)
设置自定义的DtErrorExceptionHandler如果不调用该方法,默认使用DtLogExceptionHandler
public DtMessageRouterRule rule()
protected Boolean doRoute(DtService dtService, DtEventMessage message, Map<String,Object> context)
public Boolean route(DtService dtService, DtEventMessage message, Map<String,Object> context)
public Boolean route(DtEventMessage message)
public Boolean route(DtService dtService, DtEventMessage message)
Copyright © 2021. All rights reserved.