fail retry

This commit is contained in:
bigeagle 2014-10-24 00:43:04 +08:00
parent b4bf5a6b97
commit f88b89e873
3 changed files with 16 additions and 9 deletions

View File

@ -2,3 +2,4 @@
echo $TUNASYNC_LOCAL_DIR
echo $TUNASYNC_LOG_FILE
sleep 5
exit 1

View File

@ -7,7 +7,7 @@ import signal
import Queue
def run_job(sema, child_q, manager_q, provider):
def run_job(sema, child_q, manager_q, provider, **settings):
aquired = False
setproctitle("tunasync-{}".format(provider.name))
@ -20,24 +20,29 @@ def run_job(sema, child_q, manager_q, provider):
signal.signal(signal.SIGTERM, before_quit)
max_retry = settings.get("max_retry", 1)
while 1:
try:
sema.acquire(True)
except:
break
aquired = True
print("start syncing {}".format(provider.name))
for hook in provider.hooks:
hook.before_job(name=provider.name)
provider.run()
for retry in range(max_retry):
print("start syncing {}, retry: {}".format(provider.name, retry))
provider.run()
status = "success"
try:
provider.wait()
except sh.ErrorReturnCode:
status = "fail"
status = "success"
try:
provider.wait()
except sh.ErrorReturnCode:
status = "fail"
if status == "success":
break
for hook in provider.hooks[::-1]:
try:

View File

@ -213,7 +213,8 @@ class TUNASync(object):
child_queue = Queue()
p = Process(
target=jobs.run_job,
args=(self.semaphore, child_queue, self.channel, provider, )
args=(self.semaphore, child_queue, self.channel, provider, ),
kwargs={'max_retry': self._settings['global']['max_retry']}
)
p.start()
self.processes[name] = (child_queue, p)