mirror of
https://gitee.com/binary/weixin-java-tools.git
synced 2025-09-21 02:58:09 +08:00
修改消息路由器,使用固定大小的线程池,并在构造函数里提供线程池大小的设置
This commit is contained in:
@@ -41,14 +41,22 @@ import me.chanjar.weixin.cp.bean.WxCpXmlOutMessage;
|
|||||||
*/
|
*/
|
||||||
public class WxCpMessageRouter {
|
public class WxCpMessageRouter {
|
||||||
|
|
||||||
|
private static final int DEFAULT_THREAD_POOL_SIZE = 20;
|
||||||
|
|
||||||
private final List<Rule> rules = new ArrayList<Rule>();
|
private final List<Rule> rules = new ArrayList<Rule>();
|
||||||
|
|
||||||
private final ExecutorService es = Executors.newCachedThreadPool();
|
private final ExecutorService executorService;
|
||||||
|
|
||||||
private final WxCpService wxCpService;
|
private final WxCpService wxCpService;
|
||||||
|
|
||||||
public WxCpMessageRouter(WxCpService wxCpService) {
|
public WxCpMessageRouter(WxCpService wxCpService) {
|
||||||
this.wxCpService = wxCpService;
|
this.wxCpService = wxCpService;
|
||||||
|
this.executorService = Executors.newFixedThreadPool(DEFAULT_THREAD_POOL_SIZE);
|
||||||
|
}
|
||||||
|
|
||||||
|
public WxCpMessageRouter(WxCpService wxMpService, int threadPoolSize) {
|
||||||
|
this.wxCpService = wxMpService;
|
||||||
|
this.executorService = Executors.newFixedThreadPool(threadPoolSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -79,7 +87,7 @@ public class WxCpMessageRouter {
|
|||||||
if (matchRules.get(0).async) {
|
if (matchRules.get(0).async) {
|
||||||
// 只要第一个是异步的,那就异步执行
|
// 只要第一个是异步的,那就异步执行
|
||||||
// 在另一个线程里执行
|
// 在另一个线程里执行
|
||||||
es.submit(new Runnable() {
|
executorService.submit(new Runnable() {
|
||||||
public void run() {
|
public void run() {
|
||||||
for (final Rule rule : matchRules) {
|
for (final Rule rule : matchRules) {
|
||||||
rule.service(wxMessage);
|
rule.service(wxMessage);
|
||||||
|
@@ -40,15 +40,23 @@ import java.util.regex.Pattern;
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class WxMpMessageRouter {
|
public class WxMpMessageRouter {
|
||||||
|
|
||||||
|
private static final int DEFAULT_THREAD_POOL_SIZE = 20;
|
||||||
|
|
||||||
private final List<Rule> rules = new ArrayList<Rule>();
|
private final List<Rule> rules = new ArrayList<Rule>();
|
||||||
|
|
||||||
private final ExecutorService executorService = Executors.newCachedThreadPool();
|
private final ExecutorService executorService;
|
||||||
|
|
||||||
private final WxMpService wxMpService;
|
private final WxMpService wxMpService;
|
||||||
|
|
||||||
public WxMpMessageRouter(WxMpService wxMpService) {
|
public WxMpMessageRouter(WxMpService wxMpService) {
|
||||||
this.wxMpService = wxMpService;
|
this.wxMpService = wxMpService;
|
||||||
|
this.executorService = Executors.newFixedThreadPool(DEFAULT_THREAD_POOL_SIZE);
|
||||||
|
}
|
||||||
|
|
||||||
|
public WxMpMessageRouter(WxMpService wxMpService, int threadPoolSize) {
|
||||||
|
this.wxMpService = wxMpService;
|
||||||
|
this.executorService = Executors.newFixedThreadPool(threadPoolSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -79,7 +87,7 @@ public class WxMpMessageRouter {
|
|||||||
if (matchRules.get(0).async) {
|
if (matchRules.get(0).async) {
|
||||||
// 只要第一个是异步的,那就异步执行
|
// 只要第一个是异步的,那就异步执行
|
||||||
// 在另一个线程里执行
|
// 在另一个线程里执行
|
||||||
executorService.submit(new Runnable() {
|
executorService.execute(new Runnable() {
|
||||||
public void run() {
|
public void run() {
|
||||||
for (final Rule rule : matchRules) {
|
for (final Rule rule : matchRules) {
|
||||||
rule.service(wxMessage);
|
rule.service(wxMessage);
|
||||||
|
Reference in New Issue
Block a user