HTTP interface for tasks

The HTTP API for tasks lets you can manage the periodic or timed execution of server-side JavaScript code

List all tasks

get /_api/tasks/
fetches all existing tasks on the server
Responses
  • The list of tasks

      Response Body
      map[schema:map[description:a list of all tasks items:map[properties:map[command:map[description:The JavaScript function for this task. type:string] created:map[description:The timestamp when this task was created. type:number] database:map[description:The database this task belongs to. type:string] id:map[description:A string identifying the task. type:string] name:map[description:A user-friendly name for the task. type:string] offset:map[description:Time offset in seconds from the `created` timestamp. type:number] period:map[description:This task should run each `period` seconds. type:number] type:map[description:What type of task is this [ `periodic`, `timed`] - periodic are tasks that repeat periodically - timed are tasks that execute once at a specific time type:string]] required:[name id created type period offset command database] type:object] type:array]]
    • a list of all tasks

      • The JavaScript function for this task.

      • The timestamp when this task was created.

      • The database this task belongs to.

      • A string identifying the task.

      • A user-friendly name for the task.

      • Time offset in seconds from the created timestamp.

      • This task should run each period seconds.

      • What type of task is this [ periodic, timed]

        • periodic are tasks that repeat periodically
        • timed are tasks that execute once at a specific time

Examples

Fetching all tasks

curl --header 'accept: application/json' --dump - http://localhost:8529/_api/tasks
Show output

Get a task

get /_api/tasks/{id}
fetches one existing task on the server specified by id
Path Parameters
  • The id of the task to fetch.

Query Parameters
    Responses
    • The requested task

        Response Body
      • The JavaScript function for this task.

      • The timestamp when this task was created.

      • The database this task belongs to.

      • A string identifying the task.

      • A user-friendly name for the task.

      • Time offset in seconds from the created timestamp.

      • This task should run each period seconds.

      • What type of task is this [ periodic, timed]

        • periodic are tasks that repeat periodically
        • timed are tasks that execute once at a specific time

    Examples

    Fetching a single task by its id

    curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/tasks
    "{\"id\":\"testTask\",\"command\":\"console.log('Hello from task!');\",\"offset\":10000}"
    
    curl --header 'accept: application/json' --dump - http://localhost:8529/_api/tasks/testTask
    Show output

    Trying to fetch a non-existing task

    curl --header 'accept: application/json' --dump - http://localhost:8529/_api/tasks/non-existing-task
    Show output

    Create a task

    post /_api/tasks
    creates a new task with a generated id
    Request Body application/json
    • The JavaScript code to be executed

    • The name of the task

    • Number of seconds initial delay

    • The parameters to be passed into command

    • number of seconds between the executions

    Responses
    • The task was registered

        Response Body
      • The status code, 200 in this case.

      • the javascript function for this task

      • The timestamp when this task was created

      • the database this task belongs to

      • false in this case

      • A string identifying the task

      • time offset in seconds from the created timestamp

      • this task should run each period seconds

      • What type of task is this [ periodic, timed]

        • periodic are tasks that repeat periodically
        • timed are tasks that execute once at a specific time

    • If the post body is not accurate, a HTTP 400 is returned.

    Examples

    curl -X POST --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/tasks/
    {
      "name": "SampleTask",
      "command": "(function(params) { require('@arangodb').print(params); })(params)",
      "params": {
        "foo": "bar",
        "bar": "foo"
      },
      "period": 2
    }
    
    curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/tasks/69077
    Show output

    Create a task with ID

    put /_api/tasks/{id}

    Registers a new task with the specified ID.

    Not compatible with load balancers.

    Path Parameters
    • The id of the task to create

    Query Parameters
      Request Body application/json
      • The JavaScript code to be executed

      • The name of the task

      • Number of seconds initial delay

      • The parameters to be passed into command

      • number of seconds between the executions

      Responses
      • If the task id already exists or the rest body is not accurate, HTTP 400 is returned.

      Examples

      curl -X PUT --header 'accept: application/json' --data-binary @- --dump - http://localhost:8529/_api/tasks/sampleTask
      {
        "id": "SampleTask",
        "name": "SampleTask",
        "command": "(function(params) { require('@arangodb').print(params); })(params)",
        "params": {
          "foo": "bar",
          "bar": "foo"
        },
        "period": 2
      }
      Show output

      Delete a task

      delete /_api/tasks/{id}
      Deletes the task identified by id on the server.
      Path Parameters
      • The id of the task to delete.

      Query Parameters
        Responses
        • If the task was deleted, HTTP 200 is returned.

            Response Body
          • The status code, 200 in this case.

          • false in this case

        • If the task id is unknown, then an HTTP 404 is returned.

            Response Body
          • The status code, 404 in this case.

          • true in this case

          • A plain text message stating what went wrong.

        Examples

        Try to delete a non-existent task:

        curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/tasks/NoTaskWithThatName
        Show output

        Remove existing task:

        curl -X DELETE --header 'accept: application/json' --dump - http://localhost:8529/_api/tasks/SampleTask
        Show output