Redis
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> Redis

Redis pub / sub on rails

Việc triển khai Redis#subscribe là một vòng lặp sẽ đảm nhận quyền kiểm soát luồng hiện tại để lắng nghe các sự kiện. Điều này có nghĩa là quá trình khởi động bị tạm dừng khi thả đăng ký vào ngữ cảnh của lớp Rails theo cách bạn đã hiển thị.

Bạn có thể thử gói cuộc gọi trong một chuỗi, nhưng cách tiếp cận này thực sự sẽ tạo một đăng ký mới mỗi khi lớp này được tải trong một quy trình mới, như bảng điều khiển rails hoặc nhiều kỳ lân. Ngoài ra, bạn phải cẩn thận về trạng thái chia sẻ và các vấn đề về luồng khác. Đây có lẽ không phải là điều bạn muốn.

Tốt nhất bạn nên bắt đầu một quy trình khác tải môi trường rails và đăng ký redis riêng biệt với (các) quy trình phục vụ các yêu cầu web. Nó có thể là một nhiệm vụ cào như sau:

namespace :subscribe do
  task :redis => :environment do
    $redis.subscribe("bravo") do |on|
      on.message do |channel, message|
        Rails.logger.info("Broadcast on channel #{channel}: #{message}")
        OtherClass.some_method # yada yada
      end
    end
  end
end



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tôi có thể kết nối trực tiếp với máy chủ Redis từ JavaScript đang chạy trong trình duyệt không?

  2. Có điều kiện Redis thiết lập / chỉ cập nhật với phiên bản mới nhất?

  3. redis cluster reshard [ERR] Đang gọi MIGRATE:ERR Lỗi cú pháp

  4. biên dịch redis-client tùy chỉnh không thành công

  5. Làm cách nào để kết nối với vùng chứa Redis bằng Docker Compose?