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

Bagaimana cara menerapkan fitur batas waktu pubsub redis?

Karena Anda tidak threading (dan saya berasumsi ini disengaja dan dalam beberapa kasus bijaksana), Anda harus menggunakan jenis interupsi. Sinyal adalah jenis interupsi pada sistem Unix yang memungkinkan Anda untuk kembali ke panggilan balik selama panggilan yang dapat memblokir.

Contoh file terbuka yang tidak akan pernah kembali ini sejalan dengan apa yang ingin Anda lakukan. Ini diambil dari http://docs.python.org/library/signal.html#module-signal

Tapi peringatan. Karena Python menggunakan Kunci Penerjemah Global untuk melakukan penanganan sinyal OS, itu tunduk pada beberapa masalah stabilitas. Masalah-masalah ini seharusnya jarang terjadi secara normal.

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. Dengan Redis Cluster, apakah mungkin untuk meneruskan tag hash ke eval?

  2. Node.js Kue cara memulai kembali pekerjaan yang gagal

  3. Script Redis Lua mengimplementasikan CAS (check-and-set)?

  4. ekstensi phpredis tidak berfungsi, tidak dapat memuat 'redis.so'

  5. Bagaimana cara redis kedaluwarsa kunci?