Skip to content

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

Notifications You must be signed in to change notification settings

manasacharyya25/JobSchedulerSystem

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

Watchers

Forks

Releases

No releases published

Packages

No packages published