implement backup task lock, #278

This commit is contained in:
simon 2022-08-12 12:03:09 +07:00
parent 474ab22792
commit 25f1539816
No known key found for this signature in database
GPG Key ID: 2C15AA5E89985DD4
2 changed files with 14 additions and 2 deletions

View File

@ -77,6 +77,7 @@ class StartupCheck:
"dl_queue",
"dl_queue_id",
"rescan",
"run_backup",
]
for lock in all_locks:
response = self.redis_con.del_message(lock)

View File

@ -162,8 +162,19 @@ def run_manual_import():
@shared_task(name="run_backup")
def run_backup(reason="auto"):
"""called from settings page, dump backup to zip file"""
backup_all_indexes(reason)
print("backup finished")
have_lock = False
my_lock = RedisArchivist().get_lock("run_backup")
try:
have_lock = my_lock.acquire(blocking=False)
if have_lock:
backup_all_indexes(reason)
else:
print("Did not acquire lock for backup task.")
finally:
if have_lock:
my_lock.release()
print("backup finished")
@shared_task