![](/img/trans.png)
[英]Rails ActiveJob/Sidekiq sending emails inconsistently; sometimes sends, sometimes doesn't
[英]Rails: Sidekiq is sometimes “down” - doesn't process requests. Is there a limit of request we can send through Sidekiq?
我们在几周前添加了监控系统中用户活动的内容,如下所示:
class ApplicationController < ActionController::Base
before_filter :log_request
def log_request
params_to_parse = params
all_params = params.except(:controller, :action).inspect.gsub("✓", "")
RequestLoggerWorker.perform_async(params[:controller],
params[:action],
(current_admin.nil? ? nil : current_admin.id),
request.method,
...)
end
end
Sidekiq方法:
class RequestLoggerWorker
include Sidekiq::Worker
def perform(...)
ActivityLog.create(admin_id: admin_id,
controller_log: controller,
...)
end
end
通过这种机制,我们每天可以节省4000次点击。 这部分似乎运作良好。
但是,我们注意到,自从我们实施这个Sidekiq以来已经停电 - 今天早上两次。 我们使用Sidekiq的操作未得到处理。
我需要登录我们的Ubuntu服务器(AWS EC2)并手动运行Sidekiq( RAILS_ENV=production bundle exec sidekiq
)。
什么导致关闭Sidekiq? 我正在努力研究这个问题,但到目前为止我还没有成功。
我们的Sidekiq配置( config/initializers/sidekiq.rb
):
Sidekiq.configure_server do |config|
config.redis = { url: "redis://deployer_redis@IP:6379/#{env_num}",
namespace: "sidekiq_myapp_com_#{Rails.env}" }
end
Sidekiq.configure_client do |config|
config.redis = { url: "redis://deployer_redis@IP:6379/#{env_num}",
namespace: "sidekiq_myapp_com_#{Rails.env}" }
end
作为临时解决方案,我需要在今天早上关闭活动记录机制。
我们将不胜感激。
谢谢。
您没有启动Sidekiq作为适当的系统服务,因此它全天候运行。 您需要将Sidekiq集成到Ubuntu的Upstart配置中。
https://github.com/mperham/sidekiq/wiki/Deployment#daemonization https://github.com/mperham/sidekiq/tree/master/examples/upstart
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.