- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
tôi cóapartment gem的 Multi-Tenancy Rails应用程序,我可以使用apartment-sidekiq在每个工作程序中成功切换数据库租户。但是,sidekiq worker 正在为所有租户使用相同的Redis服务器。我也想对Redis完全隔离。有没有一种方法可以使用sidekiq middeware为每个租户使用单独的Redis主机,而不会影响很多代码更改。
示例租户配置
TENANT_POOL = {
tenant_1: ConnectionPool.new { Redis.new(url: ENV['REDIS_URL1']) },
tenant_2: ConnectionPool.new { Redis.new(url: ENV['REDIS_URL2']) }
}
例如。 worker
class SendMailWorker
include Sidekiq::Worker
def perform(args)
puts "In Worker Tenant: #{Apartment::Tenant.current}, #{Sidekiq.redis_pool.inspect}"
kết thúc
kết thúc
客户端中间件
class MyMiddleware::Client::ChangeRedisPool
def call(worker_class, job, queue, redis_pool)
#Can I change redis pool/client here to execute job in separate redis
năng suất
kết thúc
kết thúc
服务器中间件
class MyMiddleware::Server::ChangeServerRedisPool
def call(worker, job, queue)
#Can I change redis pool/client here to execute job in separate redis
năng suất
kết thúc
kết thúc
我知道我们可以使用特定的连接池执行工作程序,如下所示,但这最终将在每次sidekiq工作程序调用时更改代码。
Sidekiq::Client.via(TENANT_POOL[:tenant_1]) { SendMailWorker.perform_async("d") } # run on tenant 1 sidekiq
Sidekiq::Client.via(TENANT_POOL[:tenant_2]) { SendMailWorker.perform_async("d") } # run on tenant 1 sidekiq
我们如何通过sidekiq和独立的Redis实现 Multi-Tenancy ?
1 Câu trả lời
您需要为每个Redis启动一个单独的Sidekiq进程。您的客户端可以像这样动态地定位Redis池:
SendMailWorker.set("pool" => POOLx).perform_async(...)
请查看Sidekiq::Client和Sidekiq::Worker的代码以获取详细信息。
关于ruby-on-rails - 如何在Sidekiq中切换Redis主机/池?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63020554/
Sanitize có nghĩa là gì trong Rails? Tôi đang đọc tài liệu về CanCanCan. Tài liệu nói rằng: Khi sử dụng strong_parameters hoặc Rails 4+, bạn
Trong vài tháng qua, tôi cảm thấy mình đã đạt đến giới hạn những gì tôi có thể làm với việc phát triển Ruby on Rails (RoR). Tôi đã phát triển các ứng dụng lớn và nhỏ cho các khách hàng, dự án lớn/nhỏ và dự án của bạn bè/sở thích. Tôi biết cách phát triển những ứng dụng này, nhưng nó bắt đầu trở nên khó khăn
Hôm qua tôi đã tham dự một buổi họp về việc mở rộng Rails và một trong những chủ đề là Hexagonal Rails. Tuy nhiên, tôi mới chỉ làm Rails được một năm và rất thoải mái với cấu trúc MVC (có thể là quá thoải mái), vì vậy tôi không thực sự hiểu về bộ điều hợp và hàng đợi tin nhắn.
Tôi làm việc với nhiều ứng dụng Rails, một số trên Rails 3.2/Ruby 2.0, một số trên Rails 2.3/Ruby 1.8.7. Điểm chung của tất cả chúng là khi chúng phát triển và thêm nhiều phụ thuộc/viên ngọc hơn
Câu hỏi này đã có câu trả lời tại đây: Sử dụng Rails-UJS trong các mô-đun JS (Rails 6 với webpacker) (5 câu trả lời) Đã đóng 3 năm trước. Tôi đang cố gắng sử dụng UJS
Tôi đang phát triển một ứng dụng Rails hiện đang sử dụng Rails 1.2, vì vậy tôi vẫn còn lâu mới có phiên bản ổn định mới nhất (Rails 2.3) tại thời điểm này. Tôi nên thực hiện quy trình di chuyển sang phiên bản Rails mới hơn như thế nào? Tôi nên
Đang cố gắng làm theo hướng dẫn Backbone.js của Ryan Bates để xây dựng ứng dụng rút thăm trúng thưởng, nhưng tôi gặp sự cố với đoạn mã đầu tiên. Trong hàm init của application.js, anh ấy khởi tạo bộ định tuyến Raffler
Tôi đang sử dụng Rails 3.2 và tôi có một bảng cơ sở dữ liệu mà tôi muốn tìm tất cả các hàng thỏa mãn điều kiện sau: a = true và b = true và ( 0 true, :b =>
Tôi có một lớp Người dùng và một Liên hệ, trong đó Liên hệ là lớp con của Người dùng. Cả hai lớp đều được lưu trữ trong bảng users. Danh bạ của tôi có thể có hoặc không có địa chỉ email, trong khi người dùng của tôi yêu cầu phải có địa chỉ email (tôi có validates_prefix trong định nghĩa mô hình Người dùng của mình).
Tôi đang viết một bài hướng dẫn trong đó tôi trình bày một số lệnh rails. Trên máy của tôi, cả rails và script/rails đều hoạt động tốt như nhau. Có hình thức "ưa thích" nào không? Trong hai cách này, cách nào phổ biến hơn? Câu trả lời hay nhất Khi bạn chạy đường ray
Tôi đang tìm lời khuyên về cách tốt nhất để phát triển ứng dụng của mình và đây là lần đầu tiên tôi bắt đầu tích hợp Elasticsearch. Tôi là người mới bắt đầu nhưng muốn tham gia nên hãy bỏ qua bất kỳ lỗi rõ ràng nào! Tôi đã làm theo http://www.sitep
Tôi vừa bắt đầu một ứng dụng Rails mới bằng Rails mới và thay đổi cài đặt cơ sở dữ liệu mặc định thành PostgresSQL. Tôi đã khởi động máy chủ với bin/rails s và kết quả thật lạ 2016-04-21 05:0
Tôi nhận được một tham số và muốn nó là một chuỗi như thế này: "abc,efg" hoặc một mảng như thế này ["abc","efg"] Trong trường hợp đầu tiên, tôi muốn chuyển đổi nó thành một mảng, cách tốt nhất để thực hiện là gì? Đây là ý tưởng của tôi nếu params[:
Tôi vừa bắt đầu một ứng dụng Rails mới bằng Rails mới và thay đổi cài đặt cơ sở dữ liệu mặc định thành PostgresSQL. Tôi đã khởi động máy chủ với bin/rails s và kết quả thật lạ 2016-04-21 05:0
Tôi nhận được một tham số và muốn nó là một chuỗi như thế này: "abc,efg" hoặc một mảng như thế này ["abc","efg"] Trong trường hợp đầu tiên, tôi muốn chuyển đổi nó thành một mảng, cách tốt nhất để thực hiện là gì? Đây là ý tưởng của tôi nếu params[:
Tôi có Rails 4, đây là phiên bản mặc định của tôi (và tôi vẫn muốn giữ nguyên như vậy). Nhưng tôi không muốn thêm Rails 3.2 vào máy tính của mình. Trong lệnh sau: gem install rails -v 3.2.16 Tôi có cảnh báo này: railt
Xin chào, tôi muốn xây dựng một "Rails Brick" bằng Sheevaplug của Marvell (hệ điều hành là Ubuntu ngay khi cài đặt, nhưng bạn có thể cài đặt các bản phân phối khác trên đó). Nó sẽ là một máy chủ gia đình và im lặng, chi phí thấp (99
Tôi cần có khả năng gửi tất cả lời mời chưa được chấp nhận trong cơ sở dữ liệu Postgres của ứng dụng Rails từ bảng điều khiển Rails. (Tôi có một bảng có tên là Invitations chứa một b được gọi là accepted
xác thực :cannot_modify_if_locked, trên: :update def cannot_modify_if_locked nếu self.locked lỗi
Tôi đang làm theo hướng dẫn (Learn Rails Podcast) và cần thay đổi cú pháp tuyến đường sau để tương thích với Rails 3.0. Có ai có thể giúp được không? map.view_page ':name', :controller => 'view
Tôi là một lập trình viên xuất sắc, rất giỏi!