Olá Pessoal, boa tarde.
Estou fazendo uma integração com slack e estou com um problema de conexão, o método que faz o envio das mensagens é assíncrono (@aSync) e antes de mandar a mensagem eu verifico se a conexão está aberta, senão estiver eu conecto, controle feito através de uma variável.
Mas quando vou testar minha aplicação e chamo de forma assíncrona meu método (mais ou menos ao mesmo tempo, a chamada) ele se confunde e se conecta duas vezes ao slack.
alguém com mais experiência, poderia me ajudar..
minha classe é essa:
@Async
public void sendMessage(String message){
if (this.connect()){
SlackChannel channel = session.findChannelByName(this.channelName);
session.sendMessage(channel, message);
}
}
private boolean connect(){
boolean isConnected = true;
if (this.session == null || !this.session.isConnected()) {
try{
this.session = SlackSessionFactory.createWebSocketSlackSession(encryptKey);
this.session.connect();
} catch (Exception ex){
isConnected = false;
this.session = null;
Logger.getLogger(MailService.class.getName()).log(Level.SEVERE, "Fail connecting to slack", ex);
}
}
return isConnected;
}
Muito obrigado.