gpt4 book ai didi

ruby-on-rails - Rails : Sidekiq is sometimes "down" - doesn't process requests. 我们可以通过 Sidekiq 发送的请求有限制吗?

转载 作者:太空宇宙 更新时间:2023-11-03 18:09:41 25 4
gpt4 key购买 nike

我们几周前在我们的系统中添加了监控用户事件,如下所示:

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

通过这种机制,我们每天可以节省大约 4,000 次点击。这部分似乎运作良好。

不过,我们注意到,自从我们实现此 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 作为适当的系统服务启动,因此它会全天候运行 24/7。您需要将 Sidekiq 集成到 Ubuntu 的 Upstart 配置中。

https://github.com/mperham/sidekiq/wiki/Deployment#daemonization https://github.com/mperham/sidekiq/tree/master/examples/upstart

关于ruby-on-rails - Rails : Sidekiq is sometimes "down" - doesn't process requests. 我们可以通过 Sidekiq 发送的请求有限制吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36942942/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com