Please Note: This project has known security vulnerabilities. Use at your own risk!
cron-like jobs for back-end systems
chronos is for running jobs that would normally be put into a crontab but would be easier to manage and track through a simple ui and some retry and emailing mechanisms.
A chronos job could be a Hive Query that needs to run every hour to populate a table that your api queries for an internal app, or just a periodic query that transforms some data for another back-end process. Another example might be a recurring report that needs to be sent to business leads every week, that queries a MySql database and sends the top 100 results. chronos makes these tasks simple to create, update, track, and rerun.
You're probably tired of ssh-ing to machines and rerunning jobs manually after hearing that they failed from someone that's not even on your tech team. So we've built a system that takes care of that and let's you rest easy on the weekend and hopefully spend more time coding during work hours.
chronos has been implemented in a way that lets you add a new back-end for storing jobs and history if needed. Currently we have a MySql implementation of the WithBackend interface. It would be trivial to add more to suit your needs. JDBC connections are currently used for jobs.
chronos uses a Java-based spring config.
mvn clean test
./build_site.sh mvn clean package install cd chronos-web/ mvn tomcat7:run
Note: This creates a small test table in H2 for running jobs against. Details of the table can be found here.
CREATE TABLE my_table_name AS SELECT * FROM testchronos;will work.
mvn tomcat7:runto see that job has completed.
Pull-requests are welcome! Feel free to contact us with Github Issues.