Ver Fonte

fixbug - 布隆过滤器的redis分布式锁问题修复

dongzhaorui há 2 anos atrás
pai
commit
096343b278
1 ficheiros alterados com 5 adições e 2 exclusões
  1. 5 2
      find_source/crawler/bloom_filter/utils.py

+ 5 - 2
find_source/crawler/bloom_filter/utils.py

@@ -4,6 +4,7 @@
 # @File    : utils.py
 # @Software: PyCharm
 # @Python3.6
+import io
 import uuid
 import math
 import time
@@ -36,8 +37,9 @@ def release_lock(conn, lockname, identifier):
     while True:
         # try:
         pipe.watch(lockname)
+        value = pipe.get(lockname)
         # 判断标志是否相同
-        if pipe.get(lockname) is not None and str(pipe.get(lockname), encoding='utf-8') == identifier:
+        if value is not None and value.decode() == identifier:
             pipe.multi()
             pipe.delete(lockname)
             pipe.execute()
@@ -57,4 +59,5 @@ def release_lock(conn, lockname, identifier):
 #     server = redis_client()
 #     identifier = acquire_lock_with_timeout(server, 'dzr')
 #     print(identifier)
-#     release_lock(server, 'dzr', identifier)
+#     identifier = '6ff8e107-0057-4510-95cc-2ac6f90c8501'
+#     print(release_lock(server, 'dzr', identifier))