> ## Documentation Index
> Fetch the complete documentation index at: https://docs.blockx.chaintable.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Task 与 Call

> EVM 数据如何组成任务、函数调用与输出。

Task 是向 Worker 提交的一个工作单元。Call 是该任务内的一次用户函数调用。按区块计算时，Call Builder 将源数据行转换为 Call，Writer Plugin 处理这些调用的输出。

## Task 输入

| 部分 | 用途 |
| - | - |
| 任务标识 | 在订阅或查询结果时标识一次提交 |
| Call Builder 配置 | 选择显式参数、触发区块或历史 bundle |
| 可选 Writer Plugin | 选择返回值或写表 |
| 可选超时 | 限制 Worker 上的执行时间 |

读取所使用的链与区块应放在对应配置或函数参数中。任务标识不携带链上下文。请求字段见[服务 API](/zh/reference/service-api)。

## Call

* 每个 Call 提供函数和位置参数。
* Call 不保证按输入顺序执行。需要关联输入输出时，在返回值中携带输入标识。
* 函数可以在明确的区块上下文中读取 EVM 状态或调用合约。
* 函数内的 EVM 合约调用不是一次单独提交的 Task。

## 输出

| 函数返回值 | 写表行为 |
| - | - |
| `dict` | 一条候选记录，按目标列投影 |
| `list[dict]` | 多条候选记录 |
| `None` | 不产生记录 |

`ReturnValueHandler` 将收集到的输出作为 JSON 返回。不配置 Writer Plugin 时，任务不会将函数输出作为返回数据提供。见[配置参考](/zh/reference/task-configuration)。

## 对外状态

| 状态 | 含义 |
| - | - |
| `ALLOCATED` | 已预占 slot，尚未提交任务 |
| `RUNNING` | 正在执行输入、函数或输出阶段 |
| `SUCCEEDED` | 任务的结果处理阶段成功完成 |
| `FAILED` | 执行以失败结束 |

任务运行期间保持 `WatchTasks` 流连接。查询结果不能替代这条运行连接。见[执行语义](/zh/concepts/execution-semantics)。

## 小结

* Task 组织工作，Call 调用一个函数。
* 在配置与参数中显式提供链与区块上下文。
* 任务结果与存储就绪回答不同的问题。

继续阅读：

* [Call Builder 与 Writer Plugin](/zh/concepts/builders-and-handlers)
* [执行语义与结果](/zh/concepts/execution-semantics)
* [一次性计算并返回结果](/zh/guides/run-once)
* [Task 生命周期](/zh/architecture/task-lifecycle)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.