我有一个使用Resque的Rails应用程序。我在应用程序中添加了Sentry,独立于Resque,Sentry似乎工作得很好。但是Sentry似乎没有捕捉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
我能做些什么来排除故障?
1条答案
按热度按时间omqzjyyz1#
Sentry提供了sentry-resque gem,它将自动插入一个自定义中间件和错误处理程序,以捕获来自worker的异常。
参见:https://github.com/getsentry/sentry-ruby/tree/master/sentry-resque