Elastic-Job is a distributed scheduled job solution. Elastic-Job is composited from 2 independent sub projects: Elastic-Job-Lite and Elastic-Job-Cloud.
Elastic-Job-Cloud is a Mesos framework which use Mesos + Docker(todo) to manage and isolate resources and processes.
Elastic-Job-Lite and Elastic-Job-Cloud provide unified API. Developers only need code one time, then decide to deploy Lite or Cloud as you want.
- Distributed schedule job coordinate
- Elastic scale in and scale out supported
- Failover
- Misfired jobs refire
- Sharding consistently, same sharding item for a job only one running instance
- Self diagnose and recover when distribute environment unstable
- Parallel scheduling supported
- Job lifecycle operation
- Lavish job types
- Spring integrated and namespace supported
- Web console
- Application distributed automatically
- Fenzo based resources allocated elastically
- Docker based processes isolation support (TBD)
<!-- import elastic-job cloud executor -->
<dependency>
<groupId>io.elasticjob</groupId>
<artifactId>elastic-job-cloud-executor</artifactId>
<version>${lasted.release.version}</version>
</dependency>
Same with Elastic-Job-Lite
curl -l -H "Content-type: application/json" -X POST -d '{"appName":"yourAppName","appURL":"http://app_host:8080/foo-job.tar.gz","cpuCount":0.1,"memoryMB":64.0,"bootstrapScript":"bin/start.sh","appCacheEnable":true}' http://elastic_job_cloud_host:8899/api/app
curl -l -H "Content-type: application/json" -X POST -d '{"jobName":"foo_job","appName":"yourAppName","jobClass":"yourJobClass","jobType":"SIMPLE","jobExecutionType":"TRANSIENT","cron":"0/5 * * * * ?","shardingTotalCount":5,"cpuCount":0.1,"memoryMB":64.0,"failover":true,"misfire":true,"bootstrapScript":"bin/start.sh"}' http://elastic_job_cloud_host:8899/api/job/register