我有一个使用 Resque 的 Rails 应用程序。我将哨兵添加到应用程序中,独立于Resque,哨兵似乎工作正常。但哨兵似乎并没有发现Resque工作内部的错误。
这是我的 Resque 初始值设定项文件:
# used in routes
require 'resque/server'
require 'resque/failure/multiple'
require 'resque/failure/redis'
require 'resque-sentry'
# Change redis settings according to env variable
uri = URI.parse(ENV['REDIS_URL'] || 'redis://localhost:6379')
REDIS_INSTANCE = Redis.new(
host: uri.host,
port: uri.port,
password: uri.password
)
# use a separate namespace
RESQUE_NAMESPACE = "App::#{Rails.env}"
# This will initialize the connection to redis
Resque.redis = REDIS_INSTANCE
Resque.redis.namespace = RESQUE_NAMESPACE
Resque::Failure::Multiple.classes = [Resque::Failure::Redis, Resque::Failure::Sentry]
Resque::Failure.backend = Resque::Failure::Multiple
Resque.logger.level = Logger::DEBUG
关于我可以做些什么来排除故障的任何想法?
Sentry 提供了 sentry-resque gem,它将自动插入自定义中间件和错误处理程序以捕获来自 worker 的异常。
请参阅:https://github.com/getsentry/sentry-ruby/tree/master/sentry-resque