HTTP tasks Interface
Following you have ArangoDB’s HTTP Interface for Tasks.
There are also some examples provided for every API action.
Fetch all tasks or one task
Retrieves all currently active server tasks
GET /_api/tasks/
fetches all existing tasks on the server
Responses
HTTP 200: The list of tasks
-
(array): a list of all tasks
-
name (string): The fully qualified name of the user function
-
id (string): A string identifying the task
-
created (number): The timestamp when this task was created
- type (string):
What type of task is this [
periodic
,timed
]- periodic are tasks that repeat periodically
- timed are tasks that execute once at a specific time
-
period (number): this task should run each
period
seconds -
offset (number): time offset in seconds from the created timestamp
-
command (string): the javascript function for this task
-
database (string): the database this task belongs to
-
Examples
Fetching all tasks
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/tasks
HTTP/1.1 200 OK
content-type: application/json
connection: Keep-Alive
content-length: 2
server: ArangoDB
x-arango-queue-time-seconds: 0.000000
x-content-type-options: nosniff
[ ]
Fetch one task with id
Retrieves one currently active server task
GET /_api/tasks/{id}
Path Parameters
- id (string, required): The id of the task to fetch.
fetches one existing task on the server specified by id
Responses
HTTP 200: The requested task
-
name (string): The fully qualified name of the user function
-
id (string): A string identifying the task
-
created (number): The timestamp when this task was created
- type (string):
What type of task is this [
periodic
,timed
]- periodic are tasks that repeat periodically
- timed are tasks that execute once at a specific time
-
period (number): this task should run each
period
seconds -
offset (number): time offset in seconds from the created timestamp
-
command (string): the javascript function for this task
-
database (string): the database this task belongs to
Examples
Fetching a single task by its id
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/tasks <<EOF
{"id":"testTask","command":"console.log('Hello from task!');","offset":10000}
EOF
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/tasks/testTask
HTTP/1.1 200 OK
content-type: application/json
connection: Keep-Alive
content-length: 206
server: ArangoDB
x-arango-queue-time-seconds: 0.000000
x-content-type-options: nosniff
Trying to fetch a non-existing task
shell> curl --header 'accept: application/json' --dump - http://localhost:8529/_api/tasks/non-existing-task
HTTP/1.1 404 Not Found
content-type: application/json
connection: Keep-Alive
content-length: 73
server: ArangoDB
x-arango-queue-time-seconds: 0.000000
x-content-type-options: nosniff
creates a task
creates a new task
POST /_api/tasks
Request Body
-
name (string, required): The name of the task
-
command (string, required): The JavaScript code to be executed
-
params (string, required): The parameters to be passed into command
-
period (integer, optional): number of seconds between the executions
-
offset (integer, optional): Number of seconds initial delay
creates a new task with a generated id
Responses
HTTP 200: The task was registered
-
id (string): A string identifying the task
-
created (number): The timestamp when this task was created
- type (string):
What type of task is this [
periodic
,timed
]- periodic are tasks that repeat periodically
- timed are tasks that execute once at a specific time
-
period (number): this task should run each
period
seconds -
offset (number): time offset in seconds from the created timestamp
-
command (string): the javascript function for this task
-
database (string): the database this task belongs to
-
code (number): The status code, 200 in this case.
- error (boolean): false in this case
HTTP 400: If the post body is not accurate, a HTTP 400 is returned.
Examples
shell> curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/tasks/ <<EOF
{
"name" : "SampleTask",
"command" : "(function(params) { require('@arangodb').print(params); })(params)",
"params" : {
"foo" : "bar",
"bar" : "foo"
},
"period" : 2
}
EOF
HTTP/1.1 200 OK
content-type: application/json
connection: Keep-Alive
content-length: 240
server: ArangoDB
x-arango-queue-time-seconds: 0.000000
x-content-type-options: nosniff
shell> curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/tasks/68930
creates a task with id
registers a new task with a pre-defined id; not compatible with load balancers
PUT /_api/tasks/{id}
Path Parameters
- id (string, required): The id of the task to create
Request Body
-
name (string, required): The name of the task
-
command (string, required): The JavaScript code to be executed
-
params (string, required): The parameters to be passed into command
-
period (integer, optional): number of seconds between the executions
-
offset (integer, optional): Number of seconds initial delay
registers a new task with the specified id
Responses
HTTP 400: If the task id already exists or the rest body is not accurate, HTTP 400 is returned.
Examples
shell> curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/tasks/sampleTask <<EOF
{
"id" : "SampleTask",
"name" : "SampleTask",
"command" : "(function(params) { require('@arangodb').print(params); })(params)",
"params" : {
"foo" : "bar",
"bar" : "foo"
},
"period" : 2
}
EOF
HTTP/1.1 200 OK
content-type: application/json
connection: Keep-Alive
content-length: 245
server: ArangoDB
x-arango-queue-time-seconds: 0.000000
x-content-type-options: nosniff
deletes the task with id
deletes one currently active server task
DELETE /_api/tasks/{id}
Path Parameters
- id (string, required): The id of the task to delete.
Deletes the task identified by id on the server.
Responses
HTTP 200: If the task was deleted, HTTP 200 is returned.
-
code (number): The status code, 200 in this case.
-
error (boolean): false in this case
HTTP 404: If the task id is unknown, then an HTTP 404 is returned.
-
code (number): The status code, 404 in this case.
-
error (boolean): true in this case
-
errorMessage (string): A plain text message stating what went wrong.
Examples
trying to delete non existing task
shell> curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/tasks/NoTaskWithThatName
HTTP/1.1 404 Not Found
content-type: application/json
connection: Keep-Alive
content-length: 73
server: ArangoDB
x-arango-queue-time-seconds: 0.000000
x-content-type-options: nosniff
Remove existing Task
shell> curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/tasks/SampleTask
HTTP/1.1 200 OK
content-type: application/json
connection: Keep-Alive
content-length: 26
server: ArangoDB
x-arango-queue-time-seconds: 0.000000
x-content-type-options: nosniff