Redis
 sql >> база данни >  >> NoSQL >> Redis

Как да внедря функцията за изчакване на pubsub на redis?

Тъй като не работите с нишки (и предполагам, че това е умишлено и в някои случаи разумно), трябва да използвате тип прекъсване. Сигналите са вид прекъсване в Unix системи, за да ви позволи да се върнете към обратно повикване по време на повикване, което може да блокира.

Този пример за отворен файл, който никога няма да се върне, е в съответствие с това, което искате да направите. Взето е от http://docs.python.org/library/signal.html#module-signal

Но предупреждение. Тъй като Python използва Global Interpreter Lock за извършване на обработка на сигнали на ОС, той е обект на някои проблеми със стабилността. Тези проблеми обаче обикновено трябва да са редки.

import signal, os

def handler(signum, frame):
    print 'Signal handler called with signal', signum
    raise IOError("Couldn't open device!")

# Set the signal handler and a 5-second alarm
signal.signal(signal.SIGALRM, handler)
signal.alarm(5)

# This open() may hang indefinitely
fd = os.open('/dev/ttyS0', os.O_RDWR)

signal.alarm(0)          # Disable the alarm


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. redis Изглежда, че сървърът е затворил връзката

  2. Как мога да получа стойността от Redis и да я поставя в променлива в NGiNX?

  3. Модулният сокет не е намерен lua

  4. Rails Resque смяна на лимит за работници?

  5. Как да разделите базата данни Redis за същите две приложения в node.js