name: Bankr x402 SDK - 任务管理
description: 此技能应在用户询问“作业状态”、“检查请求是否完成”、“取消请求”、“为什么我的请求需要这么长时间”、“轮询结果”、“批量请求”、“重试失败请求”、“请求超时”、“异步操作”、“作业生命周期”、“手动轮询”时使用,或需要高级控制SDK异步操作、手动作业轮询、批处理、重试逻辑或作业取消。
version: 1.1.0
SDK任务管理
管理异步作业:提交、轮询、检查状态、取消和批处理操作。
SDK方法
| 方法 |
描述 |
使用案例 |
promptAndWait() |
提交并等待结果 |
推荐用于大多数情况 |
prompt() |
提交,立即返回 |
后台处理 |
pollJob() |
轮询直到作业完成 |
手动作业跟踪 |
getJobStatus() |
检查状态一次 |
自定义轮询逻辑 |
cancelJob() |
取消待处理/处理中的作业 |
停止不需要的作业 |
作业生命周期
待处理 → 处理中 → 已完成
↘ 失败
↘ 已取消
| 状态 |
可取消 |
描述 |
| 待处理 |
是 |
等待处理 |
| 处理中 |
是 |
正在积极处理 |
| 已完成 |
否 |
成功完成 |
| 失败 |
否 |
遇到错误 |
| 已取消 |
否 |
由用户取消 |
使用示例
推荐:promptAndWait
const result = await client.promptAndWait({
prompt: "Swap 0.1 ETH to USDC",
timeout: 60000,
});
if (result.status === "completed") {
console.log(result.response);
}
手动作业控制
// 提交而不等待
const { jobId } = await client.prompt({ prompt: "What are trending tokens?" });
// 稍后检查状态
const status = await client.getJobStatus(jobId);
// 或轮询直到完成
const result = await client.pollJob({ jobId, timeout: 60000 });
取消作业
const { jobId } = await client.prompt({ prompt: "..." });
await client.cancelJob(jobId);
批处理
const prompts = ["Price of ETH", "Price of BTC", "Price of SOL"];
// 并行提交所有
const jobs = await Promise.all(
prompts.map(prompt => client.prompt({ prompt }))
);
// 等待所有完成
const results = await Promise.all(
jobs.map(job => client.pollJob({ jobId: job.jobId }))
);
定时指南
| 操作 |
典型时间 |
推荐超时 |
| 价格查询 |
2-5秒 |
15秒 |
| 余额检查 |
2-5秒 |
15秒 |
| 代币交换 |
5-15秒 |
60秒 |
| 跨链桥接 |
10-30秒 |
120秒 |
| NFT操作 |
5-15秒 |
60秒 |
相关技能
- sdk-wallet-operations: 客户端设置和配置
- sdk-capabilities: 支持操作的完整列表