1
0
镜像自地址 https://github.com/tuna/tunasync.git 已同步 2025-12-07 15:06:47 +00:00

job exception handling

这个提交包含在:
bigeagle
2014-10-25 18:29:32 +08:00
父节点 45b2046dfb
当前提交 54e6d5b34a

查看文件

@@ -28,28 +28,35 @@ def run_job(sema, child_q, manager_q, provider, **settings):
break break
aquired = True aquired = True
for hook in provider.hooks: status = "unkown"
hook.before_job(name=provider.name) try:
for hook in provider.hooks:
hook.before_job(name=provider.name)
except Exception:
import traceback
traceback.print_exc()
status = "fail"
else:
for retry in range(max_retry):
print("start syncing {}, retry: {}".format(provider.name, retry))
provider.run()
for retry in range(max_retry): status = "success"
print("start syncing {}, retry: {}".format(provider.name, retry)) try:
provider.run() provider.wait()
except sh.ErrorReturnCode:
status = "fail"
status = "success" if status == "success":
try: break
provider.wait()
except sh.ErrorReturnCode:
status = "fail"
if status == "success": try:
break for hook in provider.hooks[::-1]:
for hook in provider.hooks[::-1]:
try:
hook.after_job(name=provider.name, status=status) hook.after_job(name=provider.name, status=status)
except Exception: except Exception:
import traceback import traceback
traceback.print_exc() traceback.print_exc()
status = "fail"
sema.release() sema.release()
aquired = False aquired = False