我正在使用一个rest端点来启动一个使用executeWithLock的java进程,它接受一个LockingTaskExecutor.TaskWithResult(TaskWithResult的调用方法调用java进程/方法)。这工作正常,它只允许在任何时间点执行 java 进程,我可以从 TaskResult 获取执行状态。在某些情况下,java 进程运行时间很长,而当进程仍在执行时,其余调用会停止,
我试图让我的java进程@Async但是不管异步进程的执行如何都会释放锁并在异步进程完成之前解锁。
有没有办法通过名称获取锁定状态,以便在没有锁定的情况下我可以在单独的线程中调用 executeWithLock 并立即返回?如果它已经被锁定,我将跳过调用 executeWithLock 并立即返回。
或者对于这种情况还有其他解决方案吗?