dotCMS / dotCMS/core

[FEATURE] Quartz System Jobs APIs

Open
#35,194 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

stale Team : Modernization
Dominant language
Java
Stars
970
Forks
486
Avg merge
3d 33m
Merged PRs (30d)
170

Description

Problem

Quartz scheduler job management (listing system jobs with trigger details, deleting errored jobs) is currently only accessible via JSP scriptlets in system_jobs.jsp and Struts form actions. Need REST endpoints to answer "What system jobs are scheduled?"

Note: These are Quartz scheduler jobs (org.quartz.Job/StatefulJob), NOT the newer JobQueueManagerAPI jobs exposed at /api/v1/jobs. Quartz jobs include system infrastructure tasks like ServerHeartbeatJob, BinaryCleanupJob, DropOldContentVersionsJob, AccessTokenRenewJob, etc.

Goal

Provide REST endpoints for listing all Quartz scheduler jobs with trigger details and deleting errored/orphaned jobs.

APIs

  • GET /v1/maintenance/_systemJobs — List all Quartz scheduler jobs
  • DELETE /v1/maintenance/_systemJobs/{group}/{name} — Delete a Quartz job

Personas

  • Developer Teams — Need REST APIs for Angular System Jobs tab
  • System Administrators — Need to monitor scheduled tasks and clean up broken jobs after upgrades

Legacy Reference

  • JSP: system_jobs.jsp lines 39–108 (job listing with Quartz API calls)
  • Struts Action: ViewCMSMaintenanceAction._deleteScheduler() lines 282–289
  • Quartz Utils: com.dotmarketing.quartz.QuartzUtilsgetScheduler(), isJobRunning(), removeJob()
  • Target Class: MaintenanceResource.java (/api/v1/maintenance)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with MaintenanceResource.java and compare the Quartz logic in system_jobs.jsp lines 39–108 with ViewCMSMaintenanceAction._deleteScheduler() lines 282–289. Read QuartzUtils.getScheduler(), isJobRunning(), and removeJob() to understand the existing operations. Done means the two maintenance endpoints list Quartz jobs with trigger details and delete a specified Quartz job.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
api, backend
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
62/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.