Giter VIP home page Giter VIP logo

kaiser's Introduction

Kaiser Job Runner

Kaiser is a extensible job runner. It is responsible for execute jobs provided by the different implemented providers. The language used for developing script is javascript with the functions implemented with plugins. Kaiser can be used as workflow manager, IoT projects or for dynamic job programming.

Currently is under development but any help is very welcome. The language used is javascript (basic javascript) for scripts (in workspace folder you can find some examples).

Cloning project including web application

  • Cloning repository and submodules
git clone --recursive https://github.com/plopezm/kaiser
  • Installing golang dependencies
dep ensure
  • Installing SPA dependencies
cd cmd/webapp/kaiser-spa
npm install

Launching Kaiser for development

  • Running kaiser daemon only:
make run
  • Running kaiser & kaiser spa:
make -j2 devrun 

Status

  • Basic engine
  • Basic job foldering
  • Script file dynamic read (scripts can be modified and reexecuted automatically)
  • Argument setting
  • [Job scheduling] Scheduling jobs using ISO 8601 Duration
  • [Job launcher] Add a way to launch jobs from http events
  • [Job management] GraphQL API for creating, executing, removing tasks remotely.
  • [Web interface] A web interface to manage kaiser
  • [Plugins] More default plugins & runtime plugins (in Linux & OSX)

Project structure

  • cmd: Contains executables, currently only the engine is there, in the future a terminal connected with graphql will be implemented for managing the daemon
  • config: Used for parging "kaiser.config.json" with the program input, in addition the log is configured to be used with files
  • core: Contains the implementation of the engine, interpreter (otto) and provider. A Job provider is a thread that find new jobs and provide them to daemon
  • interfaces: Different ways to manage, create and query the jobs
  • plugins: Implementation of new functionalities for Kaiser interpreter
  • utils: Common functions used in the whole project

Package manager

This project is using dep as package management, to download all required libraries type "dep ensure"

Configuration

Currently there is only one important configuration called "workspace" where the job folder is defined.

This is an example of the current configuration file:

{
    "workspace": "./workspace"
}

Workspace

The workspace folder has some rules:

  • Folder "disabled" is used to ignore jobs putting them there.
  • Every job file has special names, *.job.json

GraphQL Examples

The file graphql.http contains some examples to use with the current API.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.