gpt4 book ai didi

ruby-on-rails - RoR + Node.js Redis sub/pub 生产

转载 作者:可可西里 更新时间:2023-11-01 11:36:09 25 4
gpt4 key购买 nike

我在生产模式下的 RoR 中遇到 Redis 发布/订阅问题。
我有 3 个实例:RoR 服务器、 Node 服务器和 Rake 任务以及某种状态下的模型(模型状态 1)

  1. RoR 服务器使用 id = 1 更新模型并将事件“一”发布到 Redis。 (模型状态2)

  2. 订阅 Redis 事件“一”的 Node.js 服务器获取消息,执行某些操作并使用一些数据将事件“二”发布到 Redis

  3. Rails 环境中的 Rake 任务订阅了 Redis 事件“two”获取消息并使用消息数据更新模型(模型状态 3)

一段时间后:

  1. Node.js 服务器使用模型 ID 将事件“three”发布到 Redis。
  2. 订阅事件“三”的同一 rake 任务获取消息并通过接收到的 ID (Model.find_by(id: message[:id])) 查找模型并获取模型状态 1,但不是模型状态 3。

仅在生产模式下观察到。在开发模式下,rake 任务获得模型状态 3,一切正常。

development.rb

Rails.application.configure do
config.cache_classes = false
config.eager_load = false
config.consider_all_requests_local = true
config.action_controller.perform_caching = false
config.action_mailer.raise_delivery_errors = false
config.active_support.deprecation = :log
config.active_record.migration_error = :page_load
config.assets.debug = true
config.assets.digest = true
config.assets.raise_runtime_errors = true
end

production.rb

Rails.application.configure do
config.cache_classes = true
config.eager_load = true
config.consider_all_requests_local = false
config.action_controller.perform_caching = true
config.serve_static_files = true
config.assets.js_compressor = :uglifier
config.assets.compile = true
config.assets.digest = true
config.log_level = :debug
config.i18n.fallbacks = true
config.active_support.deprecation = :notify
config.log_formatter = ::Logger::Formatter.new
config.active_record.dump_schema_after_migration = false
end

最佳答案

解决了在生产模式下启动 rake 任务的问题

bundle exec rake some:task RAILS_ENV=production

关于ruby-on-rails - RoR + Node.js Redis sub/pub 生产,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33407143/

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