[英]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.