Переглянути джерело

make expire interval configurable for users wanting to minimize i/o

Blake Blackshear 3 роки тому
батько
коміт
f512af2563
3 змінених файлів з 8 додано та 1 видалено
  1. 3 0
      docs/docs/configuration/index.md
  2. 4 0
      frigate/config.py
  3. 1 1
      frigate/record.py

+ 3 - 0
docs/docs/configuration/index.md

@@ -229,6 +229,9 @@ record:
   #          will fit within the available disk space of your drive or Frigate
   #          will crash.
   enabled: False
+  # Optional: Number of minutes to wait between cleanup runs (default: shown below)
+  # This can be used to reduce the frequency of deleting recording segments from disk if you want to minimize i/o
+  expire_interval: 60
   # Optional: Retention settings for recording
   retain:
     # Optional: Number of days to retain recordings regardless of events (default: shown below)

+ 4 - 0
frigate/config.py

@@ -103,6 +103,10 @@ class RecordRetainConfig(FrigateBaseModel):
 
 class RecordConfig(FrigateBaseModel):
     enabled: bool = Field(default=False, title="Enable record on all cameras.")
+    expire_interval: int = Field(
+        default=60,
+        title="Number of minutes to wait between cleanup runs.",
+    )
     # deprecated - to be removed in a future version
     retain_days: Optional[float] = Field(title="Recording retention period in days.")
     retain: RecordRetainConfig = Field(

+ 1 - 1
frigate/record.py

@@ -549,7 +549,7 @@ class RecordingCleanup(threading.Thread):
         # self.sync_recordings()
 
         # Expire tmp clips every minute, recordings and clean directories every hour.
-        for counter in itertools.cycle(range(60)):
+        for counter in itertools.cycle(range(self.config.record.expire_interval)):
             if self.stop_event.wait(60):
                 logger.info(f"Exiting recording cleanup...")
                 break