当数据库不可用时,延迟的作业工人退出

djp7away  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(303)

我在分布式系统上使用mysql对activerecord后端使用延迟作业。每当我重新启动mysql数据库时,工作进程就会停止。根据日志,每个工作人员以5秒的间隔尝试重新连接8次,然后以一个错误退出 FATAL -- : MySQL client is not connected 信息。
这意味着每次重新启动数据库时,都必须重新启动所有工作进程。
有没有办法增加重新连接的次数?

lawou6xi

lawou6xi1#

在工作中: class MyJob < ActiveJob::Base retry_on(YourMySQLException, wait: 10.seconds, attempts: 10) end 如果您想将此重试行为作为所有作业的默认行为,请考虑将此行放入 ApplicationJob ,并从中继承所有工作。
官方文档的默认值与您从日志中推断的不同,但我猜这并不重要=>https://edgeapi.rubyonrails.org/classes/activejob/exceptions/classmethods.html#method-我-你开了
然而,另一个问题可能是:为什么需要重新启动mysql?这可能不会发生在生产环境中。。。

相关问题