A simple event triggered task runner written in Scala and Akka.
Most large applications that we've worked on have associated manual tasks such as:
- checking log files for errors
- running queries and emailing out the results
- consolidate files from various systems for batch upload
Due to resource and budget constraints, these tasks never get automated. Rather, they tend to get delegated to Plebs. The lower you are in the team, the more likely it is that you will perform these tasks.
Plebify aims to be your virtual pleb.
For example:
- Scan a directory for log files and email it to you if the file contains the word "error".
- When a new record is added to a products database table, send email notifications to product managers and add an entry to a new products RSS feed.
- When an email arrives containing an order form, add it to the orders database table.
Install Java 7.
Download Plebify
Unzip into
~/plebify
(for example)Configure
Edit
~/plebify/config/application.conf
.See examples in
~/plebify/examples
for inspiration. Step by step walkthrough instructions are contained within each example.conf
file.http-broadcast.application.conf
Broadcast HTTP requests to: other HTTP endpoints, a websocket server, an email account and also to the file system.
db-sink.application.conf
Pick up data from a web server, the file system and an email server; and write it into a database table.
file-copy.application.conf
Move files from /tmp/dir1 to /tmp/dir2
Review logging configuration in
~/plebify/config/logback.xml
.- By default, Plebify output to
stdout
and a file in the~/plebify/logs
directory - To change, refer to Logback documentation.
- By default, Plebify output to
Run
cd ~/plebify/bin
./start
for unix or./start.bat
for windows.
We would consider Plebify as being in "alpha" and usable for non-critical purposes.
Currently, Plebify is only customisable via its configuration files. It is envisaged that, eventually, a web based configuration will be available. Changes will take effect immediately and Plebify will not have to be restarted.
Currently, Plebify only supports system integration via HTTP, Web Sockets, file system and email. We will be adding more connectors.
Currently, it only supports basic templating when converting data to text. We will add a better templating engine.
If you got an idea for an improvement or found a bug, please let us know by opening a ticket; or better still, send us a pull request.
- Download
- Download the latest version of Plebify.
- User Manual
- Installation. Getting Started. Connector Reference.
- Developer's Guide
- Architecture, design concepts and how to build.
- Akka Patterns
- Learning Akka? Here are a few lessons that we've learnt.
- Issue Tracker
- Got a bug or question? Log it here.