Bot代码的执行
Bot代码的执行
传递路径是关键。可以作为讲述的重点。
// 设置bot队列,接纳bot。涉及生产者消费者模型。手动实现消息队列
while(true) {
lock.lock();
if(bots.isEmpty()) { // 当队列为空。条件变量锁上
try {
condition.await(); // 暂时被阻塞。直到被唤醒,或者结束
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
// RestTemplate 在模块之间返回传递信息。记得注入模块
MultiValueMap<String,String> data=new LinkedMultiValueMap<>();
data.add("user_id",bot.getUserId().toString());
data.add("direction",direction.toString());
restTemplate.postForObject(receiveBotMoveUrl,data,String.class);
遇到的问题,两个线程botId被覆盖。经过自己的代码对比,发现是Backend出现了问题。但是具体在哪里就不知道了。应该是AB的botId线程不安全,被覆盖。