Skip to content

Repository files navigation

Job Scheduler System

image

About

A Job Management Service is one that can handle scheduling and execution of multiple types of Jobs.

System is:

  • Flexible: System is not aware of the Jobs. New Jobs should be supported without re-developing the System.
  • Reliable: Each job should either complete successfully or leave the system unaffected, in case of failure.
  • Internal Consistent: Jobs can have four states: QUEDED, RUNNING, SUCCESS, FAILED. Following execution of Job, it should be left in appropriate state.
  • Scheduling: System should allow jobs to be performed immediately or according to a schedule.
  • Priority: Jobs should be executed based on its priority relative to other jobs.

Usage

Prerequisites

  • Docker

Build and Deploy Project

In Root Directory of the Project, execute following command to spin up all Services

  docker-compose up

Test Appliction From Browser

  • In a browser open http://localhost:4200. This is where the angular app is running. You should see a screen like this
  • image

  • Click on Add A Job at top right corner. Fill in details of the Job as shown below:
  • image

    Request URL: http://sample-job:8085/job/short-success points to Sample Job Application developed for testing the Job Scheduler System

  • Click on Add Job. Once Job is submitted you should see the Job List with your newly added Job. Add a few more jobs. You should see something like this after adding a few Jobs
  • image

  • 5. Give it some time and Refresh to see updated Status of Jobs.
  • image

    The Jobs List Dashboard, provides information on Job Id, Job Name, Job Execution Type, Job Priority and Job Status.

Author

Manas Acharyya

     linkedin.com/in/manasacharyya25

About

Job Management System that allows scheduling and execution of Jobs based on Priority. Developed using Spring Boot, Java Thread Scheduler and Apache Kafka

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages