DeviceThreadPoolConfig.java 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. package com.xy.config;
  2. import com.dtp.core.support.DynamicTp;
  3. import com.xy.utils.ThreadPoolUtils;
  4. import org.springframework.context.annotation.Bean;
  5. import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
  6. import org.springframework.stereotype.Component;
  7. @Component
  8. public class DeviceThreadPoolConfig {
  9. public static final String DEVICE_COMMON_POLL = "deviceCommonPoll";
  10. public static final String DEVICE_NETWORK_POLL = "deviceNetWorkPoll";
  11. public static final String ALIPAY_DEVICE_DETAIL = "alipayDeviceDetail";
  12. public static final String ALI_DEVICE_ACTIVE = "aliDeviceActive";
  13. public static final String DEVICE_STATUS_UP = "deviceStatusUp";
  14. public static final String TY_DEVICE_STATUS = "tyDeviceStatus";
  15. /**
  16. * 公用线程池
  17. */
  18. @DynamicTp
  19. @Bean(DEVICE_COMMON_POLL)
  20. public ThreadPoolTaskExecutor deviceCommonPoll() {
  21. int coreSize = 5;
  22. return ThreadPoolUtils.newPoll()
  23. .name(DEVICE_COMMON_POLL)
  24. .coreSize(coreSize)
  25. .maxSize(coreSize * 2)
  26. .keepAlive(60)
  27. .queueSize(coreSize * 10)
  28. .builder();
  29. }
  30. /**
  31. * 上下线mqtt消费线程池
  32. */
  33. @DynamicTp
  34. @Bean(DEVICE_NETWORK_POLL)
  35. public ThreadPoolTaskExecutor deviceNetWorkPoll() {
  36. int coreSize = 5;
  37. return ThreadPoolUtils.newPoll()
  38. .name(DEVICE_NETWORK_POLL)
  39. .coreSize(coreSize)
  40. .maxSize(coreSize * 10)
  41. .keepAlive(30)
  42. .queueSize(coreSize * 10)
  43. .builder();
  44. }
  45. /**
  46. * 查询支付宝设备详情线程池
  47. */
  48. @DynamicTp
  49. @Bean(ALIPAY_DEVICE_DETAIL)
  50. public ThreadPoolTaskExecutor alipayDeviceDetail() {
  51. int coreSize = 5;
  52. return ThreadPoolUtils.newPoll()
  53. .name(ALIPAY_DEVICE_DETAIL)
  54. .coreSize(coreSize)
  55. .maxSize(coreSize * 10)
  56. .keepAlive(30)
  57. .queueSize(coreSize * 10)
  58. .builder();
  59. }
  60. /**
  61. * 支付宝设备激活线程池
  62. */
  63. @DynamicTp
  64. @Bean(ALI_DEVICE_ACTIVE)
  65. public ThreadPoolTaskExecutor aliDeviceActive() {
  66. int coreSize = 1;
  67. return ThreadPoolUtils.newPoll()
  68. .name(ALI_DEVICE_ACTIVE)
  69. .coreSize(coreSize)
  70. .maxSize(coreSize * 10)
  71. .keepAlive(30)
  72. .queueSize(coreSize)
  73. .builder();
  74. }
  75. /**
  76. * 拓元设备状态
  77. *
  78. * @return {@link ThreadPoolTaskExecutor}
  79. */
  80. @DynamicTp
  81. @Bean(TY_DEVICE_STATUS)
  82. public ThreadPoolTaskExecutor tyDeviceStatus() {
  83. int coreSize = 1;
  84. return ThreadPoolUtils.newPoll()
  85. .name(TY_DEVICE_STATUS)
  86. .coreSize(coreSize)
  87. .maxSize(coreSize * 10)
  88. .keepAlive(30)
  89. .queueSize(coreSize)
  90. .builder();
  91. }
  92. /**
  93. * 设备状态上报线程池
  94. */
  95. @DynamicTp
  96. @Bean(DEVICE_STATUS_UP)
  97. public ThreadPoolTaskExecutor deviceStatusUp() {
  98. int coreSize = 8;
  99. return ThreadPoolUtils.newPoll()
  100. .name(DEVICE_STATUS_UP)
  101. .coreSize(coreSize)
  102. .maxSize(coreSize * 2)
  103. .keepAlive(300)
  104. .queueSize(coreSize)
  105. .builder();
  106. }
  107. }