我的懈怠机器人过一段时间后开始回答多次。重新启动松弛的bot容器可以暂时解决此问题。
我们已经使用slack-ruby-bot gem将一个slack bot与我们的ruby应用程序集成在一起。
请参阅代码以获取有关如何实现命令的简单示例。在此命令中,只要用户写出“ any_phrase”,机器人就会以该“ any_phrase”确切的答案。这可以正常工作,但过了一会儿,机器人开始多次回答。
这是通过docker容器实现的,所以我添加了日志以验证我们从同一台机器获得响应,而不是从另一个容器侦听。它来自同一IP。另外,重新启动容器后,它可以解决问题,这也表明它来自同一台计算机。
class Say < SlackRubyBot::Commands::Base
command 'say' do |client, data, match|
client.say(channel: data.channel,text: match['expression'])
end
end
机器人应始终仅回答一次。还有其他命令会影响应用程序的数据,我们不希望它多次运行。
看起来像是松弛ruby-bot + Celluloid的已确认错误,请参阅https://github.com/slack-ruby/slack-ruby-bot/issues/236。有一种切换到异步Websocket的解决方法。