Skip to content

Commit 4b3f04c

Browse files
committed
fix 目录监控控重
1 parent bb478c9 commit 4b3f04c

File tree

2 files changed

+10
-5
lines changed

2 files changed

+10
-5
lines changed

app/chain/transfer.py

+2-5
Original file line numberDiff line numberDiff line change
@@ -364,11 +364,8 @@ class TransferChain(ChainBase, metaclass=Singleton):
364364
# 文件整理线程
365365
_transfer_thread = None
366366

367-
# 队列等待时间(秒)
368-
_queue_timeout = 5
369-
370367
# 队列间隔时间(秒)
371-
_transfer_interval = 10
368+
_transfer_interval = 15
372369

373370
def __init__(self):
374371
super().__init__()
@@ -536,7 +533,7 @@ def __start_transfer(self):
536533

537534
while not global_vars.is_system_stopped:
538535
try:
539-
item: TransferQueue = self._queue.get(timeout=self._queue_timeout)
536+
item: TransferQueue = self._queue.get(block=False)
540537
if item:
541538
task = item.task
542539
if not task:

app/monitor.py

+8
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
from typing import Any
77

88
from apscheduler.schedulers.background import BackgroundScheduler
9+
from cachetools import TTLCache
910
from watchdog.events import FileSystemEventHandler, FileSystemMovedEvent, FileSystemEvent
1011
from watchdog.observers.polling import PollingObserver
1112

@@ -67,6 +68,9 @@ class Monitor(metaclass=Singleton):
6768
# 存储过照间隔(分钟)
6869
_snapshot_interval = 5
6970

71+
# TTL缓存,10秒钟有效
72+
_cache = TTLCache(maxsize=1024, ttl=10)
73+
7074
def __init__(self):
7175
super().__init__()
7276
self.transferchain = TransferChain()
@@ -215,6 +219,10 @@ def __handle_file(self, storage: str, event_path: Path, file_size: float = None)
215219
"""
216220
# 全程加锁
217221
with lock:
222+
# TTL缓存控重
223+
if self._cache.get(str(event_path)):
224+
return
225+
self._cache[str(event_path)] = True
218226
try:
219227
# 开始整理
220228
self.transferchain.do_transfer(

0 commit comments

Comments
 (0)