sql >> データベース >  >> NoSQL >> Redis

redisのpubsubタイムアウト機能を実装するにはどうすればよいですか?

    あなたはスレッド化していないので(そしてこれは意図的で、場合によっては賢明だと思います)、ある種の割り込みを使用する必要があります。シグナルはUnixシステムの一種の割り込みであり、ブロックする可能性のある呼び出し中にコールバックに戻ることができます。

    決して返されないファイルを開くこの例は、あなたがやりたいことと一致しています。 http://docs.python.org/library/signal.html#module-signal

    から取得

    しかし、警告。 Pythonはグローバルインタープリターロックを使用してOS信号処理を実行するため、安定性の問題が発生する可能性があります。ただし、これらの問題は通常はまれです。

    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. Debian9へのRedisのインストール

    2. Linuxでredis-serverを強制終了できません

    3. マングース、CastError:モデルを含むモデルを保存しようとすると、値の配列へのキャストに失敗しました

    4. 日付範囲に$gtおよび$lt制約を使用するMongoexport