What is a Job?
This section refers to the latest version of Chainlink jobs (v2 jobs, or as seen in the Operator UI interface, TOML jobs). For documentation on the legacy job format, see v1 job specs. Note that v1 jobs are deprecated.
Chainlink nodes require jobs to be added to do anything useful, for example, posting asset price data on-chain. The supported job types are:
Jobs are represented by TOML specifications.
Example v2 job spec
The following is an example
cron job spec, one of the simplest specs that can be added to the node:
type = "cron" schemaVersion = 1 schedule = "CRON_TZ=UTC 0 0 1 1 *" externalJobID = "0EEC7E1D-D0D2-476C-A1A8-72DFB6633F46" observationSource = """ ds [type=http method=GET url="https://chain.link/ETH-USD"]; ds_parse [type=jsonparse path="data,price"]; ds_multiply [type=multiply times=100]; ds -> ds_parse -> ds_multiply; """
The following TOML fields are shared by every job type supported by the node.
name: the name of the job in the Operator UI.
type: specifies the v2 job type. Can be one of the following:
schemaVersion: not currently used, but must be present and set to a value of
1. Will allow us to handle progressive iterations of the job spec format gracefully with backwards-compatibility.
observationSource: the v2 pipeline task DAG. Specified in DOT syntax. See below for information on writing pipeline DAGs.
maxTaskDuration: the default maximum duration that any given task is allowed to run. If the duration is exceeded, the task is errored. This value can be overridden per-task (see subsequent sections).
externalJobID: The externalJobID is an optionally user-specified way to deterministically provide an ID of a job. If provided, it must be unique. Say for example you want to run the same directrequest job on two different chainlink nodes which have different bridge names. Although the actually spec contents differ slightly, you can use the same externalJobID on both, specify that in your on-chain requests and both nodes will pick it up.
- If you do not provide one, one will be generated by the node.