add rescan lock

This commit is contained in:
simon 2021-12-02 19:11:45 +07:00
parent 40c7a6a3f7
commit 4136a2a4f2
No known key found for this signature in database
GPG Key ID: 2C15AA5E89985DD4
2 changed files with 29 additions and 12 deletions

View File

@ -38,7 +38,13 @@ def make_folders():
def release_lock():
"""make sure there are no leftover locks set in redis on container start"""
all_locks = ["manual_import", "downloading", "dl_queue", "dl_queue_id"]
all_locks = [
"manual_import",
"downloading",
"dl_queue",
"dl_queue_id",
"rescan",
]
for lock in all_locks:
response = RedisArchivist().del_message(lock)
if response:

View File

@ -45,17 +45,28 @@ def update_subscribed():
"title": "Start rescanning channels and playlists.",
}
RedisArchivist().set_message("progress:download", message)
channel_handler = ChannelSubscription()
missing_from_channels = channel_handler.find_missing()
playlist_handler = PlaylistSubscription()
missing_from_playlists = playlist_handler.find_missing()
missing_videos = missing_from_channels + missing_from_playlists
if missing_videos:
pending_handler = PendingList()
all_videos_added = pending_handler.add_to_pending(missing_videos)
ThumbManager().download_vid(all_videos_added)
# check if reindex is needed
check_reindex.delay()
have_lock = False
my_lock = RedisArchivist().get_lock("rescan")
try:
have_lock = my_lock.acquire(blocking=False)
if have_lock:
channel_handler = ChannelSubscription()
missing_from_channels = channel_handler.find_missing()
playlist_handler = PlaylistSubscription()
missing_from_playlists = playlist_handler.find_missing()
missing = missing_from_channels + missing_from_playlists
if missing:
pending_handler = PendingList()
all_videos_added = pending_handler.add_to_pending(missing)
ThumbManager().download_vid(all_videos_added)
else:
print("Did not acquire rescan lock.")
finally:
if have_lock:
my_lock.release()
@shared_task(name="download_pending")