Skip to content

Commit e20285b

Browse files
committed
* 优化加密狗判断流程,刷新的时候一直占用一个Session
1 parent 74a667c commit e20285b

2 files changed

Lines changed: 23 additions & 4 deletions

File tree

CONTRIBUTING.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33

44

55

6-
#### JadeV1.9.1 - 2023-03-24
7-
* pyinstaller版本不固定
6+
#### JadeV1.9.2 - 2023-03-24
7+
* 优化加密狗判断流程,刷新的时候一直占用一个Session
88
---
99

1010

@@ -13,6 +13,10 @@
1313
<summary>查看更多更新日志</summary>
1414

1515

16+
#### JadeV1.9.1 - 2023-03-24
17+
* pyinstaller版本不固定
18+
---
19+
1620
#### JadeV1.9.0 - 2023-03-24
1721
* 监听加密狗驱动是否在线时间可配置
1822
---

jade/jade_threading.py

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,23 +8,38 @@
88
# @Desc :
99
from threading import Thread
1010
from jade.jade_tools import *
11+
from queue import Queue
1112
class MonitorLDKThread(Thread):
12-
def __init__(self,pyldk,JadeLog,ldkqueue,time=60*60):
13+
def __init__(self,pyldk,JadeLog,ldkqueue,time=60*60,max_session_size=1):
1314
self.pyldk = pyldk
1415
self.JadeLog = JadeLog
1516
self.ldkqueue = ldkqueue
1617
self.time = time
18+
self.max_session_size = max_session_size
19+
self.handlequeue = Queue(maxsize=max_session_size)
1720
super(MonitorLDKThread, self).__init__()
1821
self.start()
22+
23+
def logout(self):
24+
handle = self.handlequeue.get()
25+
self.pyldk.adapter.logout(handle)
1926
def run(self):
2027
haspStruct,feature_id = self.pyldk.login()
2128
if haspStruct.status == 0:
22-
self.ldkqueue.put((self.pyldk,haspStruct.handle))
29+
self.handlequeue.put(haspStruct.handle)
2330
while haspStruct.status == 0:
31+
haspStruct, feature_id = self.pyldk.login()
32+
if self.handlequeue.qsize() == self.max_session_size:
33+
self.logout()
34+
self.handlequeue.put(haspStruct.handle)
35+
if self.ldkqueue.qsize() > 0:
36+
self.ldkqueue.get()
37+
self.ldkqueue.put((self.pyldk,haspStruct.handle))
2438
if self.pyldk.get_ldk(feature_id) is False:
2539
break
2640
else:
2741
self.JadeLog.DEBUG("加密狗监听正常")
2842
time.sleep(self.time)
43+
2944
self.JadeLog.ERROR("加密狗异常,程序退出")
3045
Exit(-800)

0 commit comments

Comments
 (0)