All Projects → agenda → Agenda Rest

agenda / Agenda Rest

Licence: mit
Scheduling as a Service

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Agenda Rest

croner
Trigger functions and/or evaluate cron expressions in JavaScript. No dependencies. Most features. All environments.
Stars: ✭ 169 (+81.72%)
Mutual labels:  cron, scheduling
delay-timer
Time-manager of delayed tasks. Like crontab, but synchronous asynchronous tasks are possible scheduling, and dynamic add/cancel/remove is supported.
Stars: ✭ 257 (+176.34%)
Mutual labels:  cron, scheduling
Cronscheduler.aspnetcore
Cron Scheduler for AspNetCore 2.x/3.x or DotNetCore 2.x/3.x Self-hosted
Stars: ✭ 100 (+7.53%)
Mutual labels:  cron, scheduling
Quartznet
Quartz Enterprise Scheduler .NET
Stars: ✭ 4,825 (+5088.17%)
Mutual labels:  cron, scheduling
Pg timetable
pg_timetable: Advanced scheduling for PostgreSQL
Stars: ✭ 382 (+310.75%)
Mutual labels:  cron, scheduling
clockwork
A scheduler process to replace cron.
Stars: ✭ 472 (+407.53%)
Mutual labels:  cron, scheduling
Dapr Demos
Collection of personal Dapr demos (bindings, state, pub/sub, service-to-service invocation)
Stars: ✭ 109 (+17.2%)
Mutual labels:  rest, cron
Jaas
Run jobs (tasks/one-shot containers) with Docker
Stars: ✭ 291 (+212.9%)
Mutual labels:  cron, scheduling
Odin
A programmable, observable and distributed job orchestration system.
Stars: ✭ 405 (+335.48%)
Mutual labels:  cron, scheduling
Laravel Totem
Manage Your Laravel Schedule From A Web Dashboard
Stars: ✭ 1,299 (+1296.77%)
Mutual labels:  cron, scheduling
Evolutility Server Node
Model-driven REST or GraphQL backend for CRUD and more, written in Javascript, using Node.js, Express, and PostgreSQL.
Stars: ✭ 84 (-9.68%)
Mutual labels:  rest
Jsonapiframework
JsonApiFramework is a fast, extensible, and portable .NET framework for the reading and writing of JSON API documents. Currently working on ApiFramework 1.0 which is a new framework that supports the many enhancements documented in the 2.0 milestone of this project while being media type agnostic but will support media types like {json:api} and GraphQL for serialization/deserialization purposes.
Stars: ✭ 85 (-8.6%)
Mutual labels:  rest
Time Table Scheduler
Time Table generation using Genetic Algorithms ( Java-Struts2)
Stars: ✭ 90 (-3.23%)
Mutual labels:  scheduling
Ngx Api Utils
ngx-api-utils is a lean library of utilities and helpers to quickly integrate any HTTP API (REST, Ajax, and any other) with Angular.
Stars: ✭ 92 (-1.08%)
Mutual labels:  rest
Spotifykit
Swift client for Spotify Web API
Stars: ✭ 84 (-9.68%)
Mutual labels:  rest
Dockerfiles
Just some Dockerfiles I'm playing around with.
Stars: ✭ 88 (-5.38%)
Mutual labels:  rest
Python Taiga
🌲 Python module for communicating with the Taiga API
Stars: ✭ 81 (-12.9%)
Mutual labels:  rest
Gcalcron
Schedule shell commands execution through Google Calendar
Stars: ✭ 81 (-12.9%)
Mutual labels:  cron
Liberator
Liberator is a Clojure library for building RESTful applications.
Stars: ✭ 1,218 (+1209.68%)
Mutual labels:  rest
Spring Boot Angular Example
Example app showing how to build a Spring Boot REST API and Angular UI
Stars: ✭ 92 (-1.08%)
Mutual labels:  rest

npm version Build Status Slack Status

agenda-rest

Scheduling as a Service, based on Agenda

Assuming all job types could be thought of as REST endpoints, scheduling could be offered as a service. agenda-rest does just that, introduce a URL, name it, agenda-rest will call it on the times that you specify.

Installation

Install agenda-rest as a global package

npm install -g agenda-rest

Usage

To launch the agenda-rest server, use the command line interface specifying the database host name and the database name

agenda-rest --dbhost localhost --dbname agenda

Command Line Interface options

Options Description
-d, --dbname [optional] Name of the Mongo database, default is agenda
-h, --dbhost [optional] Mongo instance's IP or domain name, default is localhost
-u, --dburi [optional] Full Mongo connection string. If specified, will override --dbhost, --dbname
-p, --port [optional] agenda-rest server port, default is 4040
-k, --key [optional] x-api-key to be expected in headers. If not specified, access to agenda-rest server would be unauthenticated
-t, --timeout [optional] Timeout for request duration, default is 5000 ms
-a, --agenda_settings [optional] A JSON string containing additional agenda settings. For example '{ "processEvery": "30 seconds" }'

APIs

API Documentation

API Documentation (Postman Generated) available at https://explore.postman.com/templates/4883/agenda-rest

GET /api/job

Get a list of defined jobs

  • Method: GET

POST /api/job

Defines a new category of jobs

  • Method: POST
  • Data:
{
    name,           // New job type's name
    url,            // koa-router style url
    method,         // (optional) Request type, default: POST
    callback: {     // (optional) to call with response after invocation
        url,
        method,
        headers
    }
}

PUT /api/job/:jobName

Updates definition of a job category

  • Method: PUT
  • Data: same as POST /api/job

DELETE /api/job/:jobName

Deletes job definition and cancels occurrences

  • Method: DELETE

POST /api/job/once & POST /api/job/every

Schedule a job for single or multiple occurrences

  • Method: POST
  • Data:
{
    name,           // Name of the type to create the instance from
    interval,       // Interval in which job should be invoked (human-interval, can also be a date string for 'once')
    data: {         // (optional) default: {}
        headers,    // Http headers, e.g. { Authorization: '<token>' }
        params,     // An object i.e. { param1: 'value1' } used to replace path parameters `http://mydommain.com:3333/test/:param1` => `http://mydommain.com:3333/test/value1` notations in the job definition's url.
        query,      // An object i.e. { foo: 'bar', baz: 'qux' } used to create query parameters (http://mydommain.com:3333/test/value1?foo=bar&baz=qux)
        body        // Accompanying data sent along the request
    },
    options: { // (optional) Enables passing options to the `every` method in agenda as documented [here](https://github.com/agenda/agenda#repeateveryinterval-options)
      timezone, // Specify the job execution timezone.
      skipImmediate // Don't execute job immidiatly default is `false`.
    }
}

Callback, if present, would be invoked by the following object:

{
    data: {
        // passed data object, same as above
    },
    response        // response from invocation
}

POST /api/job/now

Like once and every, though without interval. Executes the job now.

POST /api/job/cancel

Cancels (not to be confused with 'delete') any jobs matching the query

  • Method: POST
  • Data: Mongo query
{
  name: "foo"
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].