22 lines
589 B
Python
22 lines
589 B
Python
import asyncio
|
|
import sys
|
|
|
|
async def execute_with_retry(task, max_retries, delay):
|
|
attempts = 0
|
|
|
|
while attempts < max_retries:
|
|
try:
|
|
return await task()
|
|
except Exception as error:
|
|
attempts += 1
|
|
print(f"尝试 {attempts} 失败: {error}", file=sys.stderr)
|
|
|
|
if attempts >= max_retries:
|
|
print("已达最大重试次数,任务失败。", file=sys.stderr)
|
|
raise
|
|
|
|
print(f"等待 {delay} 秒后重试...")
|
|
await asyncio.sleep(delay)
|
|
|
|
|
|
__all__ = ["execute_with_retry"] |