Redis
 sql >> डेटाबेस >  >> NoSQL >> Redis

कुप्पी-सॉकेटियो रेडिस सदस्यता लें

मैंने ऐप को कक्षा के लिए तर्क के रूप में पास करने और त्रुटि विवरण द्वारा सुझाए गए संदर्भ का उपयोग करने का समाधान किया, लेकिन नामस्थान भी आवश्यक है:

class Listener(threading.Thread):
    def __init__(self, r, channels, app):
    threading.Thread.__init__(self)
    self.daemon = True
    self.redis = r
    self.pubsub = self.redis.pubsub()
    self.pubsub.psubscribe(channels)
    self.app = app

    def work(self, item):
        with app.app_context():
            if isinstance(item['data'], bytes):
                try:
                    msg = item['data'].decode('utf-8')
                    decode_msg = json.loads(msg)                
                    if decode_msg['type'] == 'UPDATE_TASK':
                        send(json.dumps({"type":"UPDATE_TASK"}), room='home', namespace='/')
                    #_send_task_message()
                except ValueError as e:
                    log.error("Error decoding msg to microservice: %s", str(e))

    def run(self):
        for item in self.pubsub.listen():
            self.work(item)

if __name__ == '__main__':

    r = redis.Redis()
    client = Listener(r, ['/bobguarana/socketio'], app)
    client.start()

    socketio.run(debug=True, app=app, port=8080)


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. रेडिस अवधारणा:स्मृति या डीबी में?

  2. भगवान विन्यास फाइल मौजूदा प्रक्रियाओं की निगरानी के लिए?

  3. एकाधिक कार्यकर्ता kues . के साथ जाने के लिए रेडिस से जुड़ने में परेशानी

  4. जावा के लिए जेडिस का उपयोग करके डॉकर रेडिस क्लस्टर इंस्टेंस से कैसे कनेक्ट करें?

  5. Laravel - बार-बार अपडेट के साथ वाक्पटु कैशिंग