Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何只允许一个活动@Async任务?_Java_Spring_Spring Boot_Asynchronous - Fatal编程技术网

Java 如何只允许一个活动@Async任务?

Java 如何只允许一个活动@Async任务?,java,spring,spring-boot,asynchronous,Java,Spring,Spring Boot,Asynchronous,我有一个方法,它接收一个文件,然后处理这个文件。但是处理需要很长时间,所以我想在后台这样做,然后告诉用户这个文件现在将被处理。但我的要求是,只有在之前的调用完成后,才能调用此任务。因此,用户应该得到一个他必须等待的错误 我知道我可以排队处理,但我想保持简单 那我该怎么做呢?是否有某种方法可以请求此任务是否已完成,以便客户端可以刷新状态并在任务是否已完成时获取标志?在异步方法中,将某些共享数据结构“taskProcessing”标志设置为true,并在结束时设置为false。并在再次调用task且

我有一个方法,它接收一个文件,然后处理这个文件。但是处理需要很长时间,所以我想在后台这样做,然后告诉用户这个文件现在将被处理。但我的要求是,只有在之前的调用完成后,才能调用此任务。因此,用户应该得到一个他必须等待的错误

我知道我可以排队处理,但我想保持简单


那我该怎么做呢?是否有某种方法可以请求此任务是否已完成,以便客户端可以刷新状态并在任务是否已完成时获取标志?

在异步方法中,将某些共享数据结构“taskProcessing”标志设置为true,并在结束时设置为false。并在再次调用task且taskProcessing为true时返回错误。简单

请参见“是”,我通过将
AtomicBoolean
设置为标志并将线程池限制为1解决了这个问题。