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

Làm cách nào để triển khai tính năng hết thời gian chờ pubsub của redis?

Bởi vì bạn không phân luồng (và tôi cho rằng điều này là cố ý và trong một số trường hợp là khôn ngoan) nên bạn phải sử dụng một loại ngắt. Tín hiệu là một loại ngắt trên hệ thống Unix để cho phép bạn quay lại lệnh gọi lại trong một cuộc gọi có thể chặn.

Ví dụ về một tệp đang mở sẽ không bao giờ quay trở lại này phù hợp với những gì bạn muốn làm. Nó được lấy từ http://docs.python.org/library/signal.html#module-signal

Nhưng một lời cảnh báo. Vì Python sử dụng Khóa thông dịch viên toàn cầu để thực hiện xử lý tín hiệu hệ điều hành nên Python có thể gặp một số vấn đề về độ ổn định. Mặc dù vậy, những vấn đề này sẽ hiếm khi xảy ra.

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 xuất bản / đăng ký:xem những kênh nào hiện được đăng ký

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

  3. Redis - Tập hợp đã sắp xếp, tìm mục theo giá trị thuộc tính

  4. Heroku:Nhiệm vụ nền bằng Python với RQ

  5. gradle xây dựng các công trình địa phương. Trong bộ chứa docker thì không. TẠI SAO?