Giter Site home page Giter Site logo

jaredgorski / arpx Goto Github PK

View Code? Open in Web Editor NEW
62.0 5.0 1.0 848 KB

Small-scale process orchestration

Home Page: https://crates.io/crates/arpx

License: GNU General Public License v3.0

Rust 100.00%
processes automation concurrency scheduling tasks orchestrator orchestration

arpx's People

Contributors

jaredgorski avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

dmgolembiowski

arpx's Issues

Backlog

Backlog

This issue documents the backlog which serves as the basis for future versions. If you have opinions on this, feel free to comment and start discussions. Some of these ideas may be implemented and your input matters.

Features

  • Make bin configuration more streamlined:
    • Presets?
      • bash: sh -c
      • cmd: cmd /c
      • powershell: powershell -Command
    • Enable configuring bin via profile?
  • ? External log monitors:
    • use arpx to monitor external log file and spawn processes ontrigger
  • ?? Per-process log colors:
    • probably not for Arpx... more appropriate for a separate program ("prism"?)

Changes

  • Log monitors should be able to stdin process threads if needed
  • Consider renaming test property in log_monitors mappings to command, to be consistent with processes
  • Consider renaming command to exec everywhere
  • Consider renaming ontrigger property in log_monitors mappings to onsucceed, or assign it to a special exit code instead (such as 2) and call it on2
  • Allow log monitors to execute multiple (concurrent) ontrigger actions
  • Log monitors should spawn ontrigger actions on the process threads they watch (not on their own thread)
    • park process threads if needed and use message passing to prompt the task thread to unpark and run the ontrigger
  • Consider making jobs composable (jobs can be actions too):
    • jobs would now have contingency
    • runtime ctx would need a job_map
    • thread max would be harder to enforce

Improvements

  • Insofar as ctx is passed around, the entire log_monitor_map and process_map objects get copied. Can ctx be referenced instead?

Platform support

Documentation

  • Replace foobar examples throughout docs (and demo) with standard, practical examples (cluster init, webserver, api service, etc.)
  • Migration guide for profiles
  • Clarify how log monitors should be used

Rewrite README

README in its current form is confusing. Some needs include: better differentiation between processes and actions (primary processes vs side effects), better examples (including calling processes onsucceed/onfail), less all-caps... it's obnoxious, and more.

Probably best to just rewrite and organize the concepts more simply.

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.