フォーク、 は適切な方法で、は必要になるまで文を実行できません。python関数のパラメータの実行
は、私は、指数のAPIバックオフを行う機能を持っているとしましょう。この場合
def exponential_backoff_task(config, task, description):
retry_count = config.get('retry_count', 5)
api_backoff_initial_msec = config.get('api_backoff_initial_msec', 200)
print 'Running api-backoff task: %s, retry_count: %d, initial_backoff: %d' % (description, retry_count, api_backoff_initial_msec)
result = None
for r in range(retry_count):
try:
result = task
except boto.exception.BotoServerError:
delay_msec = (2 ** r) * api_backoff_initial_msec
print 'Exponential backoff, retry %d for %d msecs...' % (r, delay_msec)
time.sleep(delay_msec/1000)
continue
except:
raise
return result
def foo():
all_instances = exponential_backoff_task(config, conn.get_all_dbinstances(), 'foo'))
、conn.get_all_instances()
ではなくexponential_backup
機能
おかげ内に行使されるので、関数が呼び出されたときに実行されます!
あなたのメソッド内で 'task()'を呼び出すことは決してありません。単に 'all_instances'に' None'を返すだけです。 –