Redis
 sql >> Teknologi Basis Data >  >> NoSQL >> Redis

Redis pub/sub di rel

Implementasi Redis#subscribe adalah loop yang akan mengambil kendali dari utas saat ini untuk mendengarkan acara. Ini berarti proses boot dihentikan saat menghentikan langganan ke dalam konteks kelas Rails seperti yang Anda tunjukkan.

Anda dapat mencoba membungkus panggilan dalam utas, tetapi pendekatan ini benar-benar akan membuat langganan baru setiap kali kelas ini dimuat dalam proses baru, seperti konsol Rails atau beberapa unicorn. Plus, Anda harus berhati-hati tentang status bersama dan masalah threading lainnya. Ini mungkin bukan yang Anda inginkan.

Sebaiknya Anda memulai proses berbeda yang memuat lingkungan Rails dan berlangganan redis secara terpisah dari proses yang melayani permintaan web. Ini bisa menjadi tugas menyapu seperti berikut:

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. Bagaimana Redis mencapai throughput dan kinerja yang tinggi?

  2. phpredis di fedora 12

  3. Struktur data yang kompleks Redis

  4. Caching booting pegas dengan redis, kunci memiliki \xac\xed\x00\x05t\x00\x06

  5. Apa yang dapat dilakukan menggunakan pekerjaan latar belakang asinkron CKAN?