Tweaked delay scan path logic

This commit is contained in:
David Maisonave
2024-08-22 03:53:50 -04:00
parent fa09ae8a14
commit ce4f535576

View File

@@ -313,7 +313,7 @@ class StashScheduler: # Stash Scheduler
pass pass
return None return None
def checkStashIsRunning(self, task): def checkStashIsRunning(self, task = {}, sleepAfterStart = 10):
try: try:
result = stash.stash_version() result = stash.stash_version()
except: except:
@@ -349,7 +349,7 @@ class StashScheduler: # Stash Scheduler
stash.Error("Could not start Stash, because could not find executable Stash file '{execPath}'") stash.Error("Could not start Stash, because could not find executable Stash file '{execPath}'")
return None return None
result = f"Execute process PID = {stash.ExecuteProcess(args)}" result = f"Execute process PID = {stash.ExecuteProcess(args)}"
time.sleep(10) time.sleep(sleepAfterStart)
if "RunAfter" in task and len(task['RunAfter']) > 0: if "RunAfter" in task and len(task['RunAfter']) > 0:
for runAfterTask in task['RunAfter']: for runAfterTask in task['RunAfter']:
self.runTask(runAfterTask) self.runTask(runAfterTask)
@@ -585,13 +585,15 @@ def start_library_monitor():
if lastScanJob['DelayedProcessTargetPaths'] != [] or len(TmpTargetPaths) > 1 or TmpTargetPaths[0] != SPECIAL_FILE_DIR: if lastScanJob['DelayedProcessTargetPaths'] != [] or len(TmpTargetPaths) > 1 or TmpTargetPaths[0] != SPECIAL_FILE_DIR:
if not stash.DRY_RUN: if not stash.DRY_RUN:
if lastScanJob['id'] > -1: if lastScanJob['id'] > -1:
if stashScheduler:
stashScheduler.checkStashIsRunning()
lastScanJob['lastStatus'] = stash.find_job(lastScanJob['id']) lastScanJob['lastStatus'] = stash.find_job(lastScanJob['id'])
elapsedTime = time.time() - lastScanJob['timeAddedToTaskQueue'] elapsedTime = time.time() - lastScanJob['timeAddedToTaskQueue']
if 'status' not in lastScanJob['lastStatus']: if lastScanJob['lastStatus'] == None or lastScanJob['lastStatus'] == "" or 'status' not in lastScanJob['lastStatus']:
stash.Warn(f"Could not get a status from scan job {lastScanJob['id']}; result = {lastScanJob['lastStatus']}; Elapse-Time = {elapsedTime}") stash.Warn(f"Could not get a status from scan job {lastScanJob['id']}; result = {lastScanJob['lastStatus']}; Elapse-Time = {elapsedTime}")
else: else:
stash.Trace(f"Last Scan Job ({lastScanJob['id']}); Status = {lastScanJob['lastStatus']['status']}; result = {lastScanJob['lastStatus']}; Elapse-Time = {elapsedTime}") stash.Trace(f"Last Scan Job ({lastScanJob['id']}); Status = {lastScanJob['lastStatus']['status']}; result = {lastScanJob['lastStatus']}; Elapse-Time = {elapsedTime}")
if 'status' not in lastScanJob['lastStatus'] or lastScanJob['lastStatus']['status'] in JOB_ENDED_STATUSES or elapsedTime > MAX_SECONDS_WAIT_SCANJOB_COMPLETE: if lastScanJob['lastStatus'] == None or lastScanJob['lastStatus'] == "" or 'status' not in lastScanJob['lastStatus'] or lastScanJob['lastStatus']['status'] in JOB_ENDED_STATUSES or elapsedTime > MAX_SECONDS_WAIT_SCANJOB_COMPLETE:
if elapsedTime > MAX_SECONDS_WAIT_SCANJOB_COMPLETE: if elapsedTime > MAX_SECONDS_WAIT_SCANJOB_COMPLETE:
stash.Warn(f"Timeout occurred waiting for scan job {lastScanJob['id']} to complete. Elapse-Time = {elapsedTime}; Max-Time={MAX_SECONDS_WAIT_SCANJOB_COMPLETE}; Scan-Path(s) = {lastScanJob['TargetPaths']}") stash.Warn(f"Timeout occurred waiting for scan job {lastScanJob['id']} to complete. Elapse-Time = {elapsedTime}; Max-Time={MAX_SECONDS_WAIT_SCANJOB_COMPLETE}; Scan-Path(s) = {lastScanJob['TargetPaths']}")
lastScanJob['id'] = -1 lastScanJob['id'] = -1