也许这个配置有帮助吗? (仍未测试,我会更新时更新)我们的想法是让几个线程转向redis
&lt; int:channel id =“distribution”&gt; &lt; int:调度程序任务 - 执行者 </跨度> 锟“=”发行“&gt; &lt; int:queue capacity =“50”/&gt; &LT; / INT:渠道&gt;
&lt; task:executor id =’distributionExecutor’pool-size =’25’queue-capacity =’25’rejection- 政策 </跨度> = “CALLER_RUNS”/&GT;
&lt; redis:queue锟
为了完成这个问题,我将此处的评论作为答案。
自从 <task:executor/> 配置具有非常低的并发性(2)和 AbortPolicy 作为默认值,由于以下原因,对Redis执行的任务已丢失 rejection 。
<task:executor/>
AbortPolicy
rejection
需要依靠单线程 DirectChannel 或确保任务执行程序有足够大的线程池并配置策略 CallerRunsPolicy 。
DirectChannel
CallerRunsPolicy