fix(savetv): verhindere parallele NAS-Syncs
This commit is contained in:
parent
ba9c55a916
commit
9731068a01
1 changed files with 9 additions and 2 deletions
|
|
@ -3,7 +3,7 @@
|
||||||
SaveTV → NAS Sync
|
SaveTV → NAS Sync
|
||||||
Wartet 12h ± 0-30min nach Download auf Hetzner bevor Datei auf NAS kommt.
|
Wartet 12h ± 0-30min nach Download auf Hetzner bevor Datei auf NAS kommt.
|
||||||
"""
|
"""
|
||||||
import os, json, time, random, urllib.request, urllib.parse, urllib.error, email.utils
|
import os, json, time, random, fcntl, urllib.request, urllib.parse, urllib.error, email.utils
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
ZIEL = "/mnt/nas/Filme zum nachbearbeiten"
|
ZIEL = "/mnt/nas/Filme zum nachbearbeiten"
|
||||||
|
|
@ -11,6 +11,7 @@ BASE = "http://138.201.84.95:9443/files"
|
||||||
API = "http://138.201.84.95:9443/api/films"
|
API = "http://138.201.84.95:9443/api/films"
|
||||||
CALLBACK = "http://138.201.84.95:9443/api/nas_synced"
|
CALLBACK = "http://138.201.84.95:9443/api/nas_synced"
|
||||||
LOG = "/var/log/savetv_sync.log"
|
LOG = "/var/log/savetv_sync.log"
|
||||||
|
LOCKFILE = "/tmp/savetv_sync.lock"
|
||||||
|
|
||||||
MIN_ALTER_H = 24
|
MIN_ALTER_H = 24
|
||||||
JITTER_MIN = 30 # ± bis zu 30 Minuten Zufall
|
JITTER_MIN = 30 # ± bis zu 30 Minuten Zufall
|
||||||
|
|
@ -115,4 +116,10 @@ def sync():
|
||||||
log(f"Fertig. {kopiert} neue Filme kopiert.")
|
log(f"Fertig. {kopiert} neue Filme kopiert.")
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
sync()
|
with open(LOCKFILE, "w") as lock:
|
||||||
|
try:
|
||||||
|
fcntl.flock(lock, fcntl.LOCK_EX | fcntl.LOCK_NB)
|
||||||
|
except BlockingIOError:
|
||||||
|
log("Sync läuft bereits, überspringe diesen Start.")
|
||||||
|
raise SystemExit(0)
|
||||||
|
sync()
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue