Functions, Cron & Queues
Functions
Run your code on demand. Each execution runs in an isolated container; your code exports a handler that receives the request and returns a result.
Create & execute
curl -X POST "https://base.finiteskills.com/v1/functions" -H "X-Appwrite-Project: <YOUR_PROJECT_ID>" \
-H "X-Appwrite-Key: <API_KEY>" -H "Content-Type: application/json" \
-d '{"functionId":"double","name":"Double","code":"module.exports=({req})=>({n:(req.body.n||0)*2})"}'
curl -X POST "https://base.finiteskills.com/v1/functions/double/executions" \
-H "X-Appwrite-Project: <YOUR_PROJECT_ID>" -H "X-Appwrite-Key: <API_KEY>" \
-H "Content-Type: application/json" -d '{"body":{"n":21}}'
The handler signature is ({ req, res, log }) => result. Return a value or call
res.json(obj, statusCode). Executions record status, logs, errors and duration.
Cron
POST /cron schedules a recurring job targeting a function or a webhook. Schedules:
@every 30s|5m|1h, @hourly, @daily, or a */n * * * * cadence.
Queues
A durable, Postgres-native message queue:
Send / receive / ack
POST /queues/{queue}/messages { body } # enqueue
POST /queues/{queue}/receive { max, visibilityTimeout } # claim
POST /queues/{queue}/messages/{id}/ack # delete (done)
POST /queues/{queue}/messages/{id}/nack # return to the queue
A received message becomes invisible for its visibility timeout; ack removes it,
nack makes it immediately visible again.