Interface JobResultStore

  • All Known Implementing Classes:
    AbstractThreadsafeJobResultStore, EmbeddedJobResultStore, FileSystemJobResultStore

    @Internal
    public interface JobResultStore
    A storage for the results of globally terminated jobs. These results can have the following states:
    • dirty - indicating that the corresponding job is not properly cleaned up, yet.
    • clean - indicating that the cleanup of the corresponding job is performed and no further actions need to be applied.
    • Method Detail

      • createDirtyResultAsync

        CompletableFuture<Void> createDirtyResultAsync​(JobResultEntry jobResultEntry)
        Registers the passed JobResultEntry instance as dirty which indicates that clean-up operations still need to be performed. Once the job resource cleanup has been finalized, we can mark the JobResultEntry as clean result using markResultAsCleanAsync(JobID).
        Parameters:
        jobResultEntry - The job result we wish to persist.
        Returns:
        a successfully completed future if the dirty result is created successfully. The future will be completed with IllegalStateException if the passed jobResultEntry has a JobID attached that is already registered in this JobResultStore.
      • markResultAsCleanAsync

        CompletableFuture<Void> markResultAsCleanAsync​(JobID jobId)
        Marks an existing JobResultEntry as clean. This indicates that no more resource cleanup steps need to be performed. No actions should be triggered if the passed JobID belongs to a job that was already marked as clean.
        Parameters:
        jobId - Ident of the job we wish to mark as clean.
        Returns:
        a successfully completed future if the result is marked successfully. The future can complete exceptionally with a NoSuchElementException. i.e. there is no corresponding dirty job present in the store for the given JobID.
      • hasJobResultEntryAsync

        default CompletableFuture<Boolean> hasJobResultEntryAsync​(JobID jobId)
        Returns the future of whether the store already contains an entry for a job.
        Parameters:
        jobId - Ident of the job we wish to check the store for.
        Returns:
        a successfully completed future with true if a dirty or clean JobResultEntry exists for the given JobID; otherwise false.
      • hasDirtyJobResultEntryAsync

        CompletableFuture<Boolean> hasDirtyJobResultEntryAsync​(JobID jobId)
        Returns the future of whether the store contains a dirty entry for the given JobID.
        Parameters:
        jobId - Ident of the job we wish to check the store for.
        Returns:
        a successfully completed future with true, if a dirty entry exists for the given JobID; otherwise false.
      • hasCleanJobResultEntryAsync

        CompletableFuture<Boolean> hasCleanJobResultEntryAsync​(JobID jobId)
        Returns the future of whether the store contains a clean entry for the given JobID.
        Parameters:
        jobId - Ident of the job we wish to check the store for.
        Returns:
        a successfully completed future with true, if a clean entry exists for the given JobID; otherwise a successfully completed future with false.
      • getDirtyResults

        Set<JobResult> getDirtyResults()
                                throws IOException
        Get the persisted JobResult instances that are marked as dirty. This is useful for recovery of finalization steps.
        Returns:
        A set of dirty JobResults from the store.
        Throws:
        IOException - if collecting the set of dirty results failed for IO reasons.