@Override
    public void run(Job job) throws Exception {
        getBackgroundJobWorker(job).run();
        if (Thread.currentThread().isInterrupted()) throw new InterruptedException();
    }
@Test
    void invokeJobMethodAlwaysResetsJobContextThreadLocal() {
        final Job job = aJobInProgress().withJobDetails(this::throwingJobContext).build();

        final AbstractBackgroundJobRunner backgroundJobRunner = getJobRunner(BackgroundJobWorker::new);

        assertThatCode(() -> backgroundJobRunner.run(job)).isInstanceOf(Exception.class);
        assertThat(ThreadLocalJobContext.getJobContext()).isNull();
    }