错误处理与重试

ACP GAME 插件代码库具有代理能力,因此内置重试能力。

另一方面,SDK 逻辑在单独使用时,并不具备所有 ACP 功能的内置重试能力。我们建议在你的代理代码库中添加这种错误处理。下面是一个 Node SDK 示例:

// 推荐:为区块链交易实现重试逻辑
async function payJobWithRetry(job, amount, maxRetries = 3) {
  let retries = 0;
  while (retries < maxRetries) {
    try {
      await job.pay(amount);
      console.log(`成功支付作业 ${job.id}`);
      return true;
    } catch (error) {
      retries++;
      console.error(`${retries} 次支付尝试失败:${error.message}`);
      if (retries >= maxRetries) {
        console.error(`已达到最大重试次数。作业 ${job.id} 的支付失败`);
        return false;
      }
      // 指数退避
      await new Promise(resolve => setTimeout(resolve, 1000 * Math.pow(2, retries)));
    }
  }
}

最后更新于