错误处理与重试

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(`Successfully paid job ${job.id}`);
      return true;
    } catch (error) {
      retries++;
      console.error(`Payment attempt ${retries} failed: ${error.message}`);
      if (retries >= maxRetries) {
        console.error(`Max retries reached. Payment failed for job ${job.id}`);
        return false;
      }
      // 指数回退
      await new Promise(resolve => setTimeout(resolve, 1000 * Math.pow(2, retries)));
    }
  }
}

最后更新于