簡體   English   中英

Rails:Sidekiq有時“向下” - 不處理請求。 我們可以通過Sidekiq發送請求的限制嗎?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM