ArangoDB v3.12 is under development and not released yet. This documentation is not final and potentially incomplete.

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
    • 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
    HTTP Headers
      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/69162
      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
        HTTP Headers
          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
            HTTP Headers
              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