Skip to content

Add afterJobSaved method to JobExecutionListener #4851

@hannosgit

Description

@hannosgit

Current Behavior

Currently there is a afterJob method in JobExecutionListener that is called after the job completes but BEFORE the job metadata (status) is actually saved into the database. We currently use this method to send a message to RabbitMQ with the status of the job but there is the edge case that we send the message with the new status but the transaction rolls back in the end. This would lead to the case that the status in the message and the status in the DB do not match.

Proposed Feature

Additional afterJobSaved method in JobExecutionListener or configurable afterJob method that is only called AFTER the job status is persisted.

Activity

therepanic

therepanic commented on May 28, 2025

@therepanic
Contributor

I think this is a very useful feature and I’d be happy to implement it. Adding a new default method to the JobExecutionListener interface would address @hannosgit’s use case perfectly.

Would introducing a backward‑compatible change like this (i.e. a new default method) be acceptable in an upcoming minor release? @fmbenhassine I’d appreciate your guidance.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Participants

      @hannosgit@therepanic

      Issue actions

        Add afterJobSaved method to JobExecutionListener · Issue #4851 · spring-projects/spring-batch