Cron Jobs¶
Sometimes you don't want to run your graph based on user interaction, but rather you would like to schedule your graph to run on a schedule - for example if you wish for your graph to compose and send out a weekly email of to-dos for your team. LangGraph Cloud allows you to do this without having to write your own script by using the Crons
client. To schedule a graph job, you need to pass a cron expression to inform the client when you want to run the graph. Cron
jobs are run in the background and do not interfere with normal invocations of the graph.
Setup¶
First, let's setup our SDK client, assistant, and thread:
curl --request POST \
--url <DEPLOYMENT_URL>/assistants/search \
--header 'Content-Type: application/json' \
--data '{
"limit": 10,
"offset": 0
}' | jq -c 'map(select(.config == null or .config == {})) | .[0].graph_id' && \
curl --request POST \
--url <DEPLOYMENT_URL>/threads \
--header 'Content-Type: application/json' \
--data '{}'
Output:
{
'thread_id': '9dde5490-2b67-47c8-aa14-4bfec88af217',
'created_at': '2024-08-30T23:07:38.242730+00:00',
'updated_at': '2024-08-30T23:07:38.242730+00:00',
'metadata': {},
'status': 'idle',
'config': {},
'values': None
}
Cron job on a thread¶
To create a cron job associated with a specific thread, you can write:
Note that it is very important to delete Cron
jobs that are no longer useful. Otherwise you could rack up unwanted API charges to the LLM! You can delete a Cron
job using the following code:
Cron job stateless¶
You can also create stateless cron jobs by using the following code:
Again, remember to delete your job once you are done with it!