我在 kotlin 中使用 redisson ExecutorService,但出现这样的异常,“java.util.concurrent.RejectedExecutionException:任务被拒绝。ExecutorService 处于关闭状态”。

class RunnableTask : Runnable ,Serializable{ 
   private val redissonClient: RedissonClient? = null 
   private var param: Long=0 
 
   override fun run() { 
      val atomic = redissonClient!!.getAtomicLong("myAtomic") 
      atomic.addAndGet(param) 
      } 
 
 } 
 
fun main(args: Array<String>) { 
  val config = Config() 
  config.useSingleServer() 
      .setAddress("redis://127.0.0.1:6379") 
  val redisson = Redisson.create(config) 
 
  val nodeConfig =   RedissonNodeConfig(config)    
 
  nodeConfig.setExecutorServiceWorkers(Collections.singletonMap("myExecutor", 1)) 
  val node = RedissonNode.create(nodeConfig) 
  node.start() 
  val e = redisson.getExecutorService("myExecutor") 
  e.execute(  RunnableTask()) 
  e.shutdown() 
  node.shutdown() 
 
} 

我用的是redisson 3.11.5。

请您参考如下方法:

什么对我有用:

val e = redisson.getExecutorService("myExecutor") 
if (e.isShutdown()) { 
    e.delete() 
} 

我假设当没有工作人员连接来处理任务时,远程执行程序进入关闭状态。


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!