Git Product home page Git Product logo

jobq's Introduction

jobq
===

C++ lockless job runner

How to use:
    JOBQ_HOME=$PWD jobq &
    echo $! > pid
    cp res/test j/p/.test
    mv j/p/.test j/p/test
    sleep 10
    ls j/f
    kill -9 $(cat pid)
    rm pid


License : BSD

Caveats:
    Piping or && or || are not supported. See ./res/test for how to connect commands

Job file format

                                                    OPTIONAL
pre - sanity checks, non 0 exit code = fail         YES
env - environment variables for run command         YES
log - tail log for duration of cmd                  YES
dir - directory to run in                           YES Default: $JOBQ_HOME/j/p/<JOB>
cmd - operation command                             NO

[
    {
        "pre" : [ "" ],
        "env" : [
           {
              "ENV" : "VAR"
           }
        ],
        "log" : "~/.bash_history",
        "dir" : "~/"
        "cmd" : "ls"
    },
    {
        "pre" : [ "" ],
        "env" : [
           {
              "ENV" : "VAR"
           }
        ],
        "log" : "~/.bash_history",
        "cmd" : "ls"
    }
]

Directory structure:
    $JOBQ_HOME/j/p : pending - new jobs
    $JOBQ_HOME/j/e : error   - failed jobs
    $JOBQ_HOME/j/r : running - currently operating jobs
    $JOBQ_HOME/j/f : pending - finished jobs


New job file "test", when run without errors. becomes 
    $JOBQ_HOME/j/f/test.tar.gz
Containing all out/err/log for each command
    test
     -> 1
        -> out  # output from command 1
     -> 2
        -> out  # output from command 2
     -> test    # copy of original json

Error files have the exception output appended to the command in the json file.


Switches
 
Key             _JOBQ_BREAK_ON_ERROR_ 
Type            bool
Default         1
Description     if true job stops and no further commands are executed

jobq's People

Contributors

philipdeegan avatar

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.