Die asynchronisierte Methode verhält sich nicht asynchronJava

Java-Forum
Guest
 Die asynchronisierte Methode verhält sich nicht asynchron

Post by Guest »

Ich habe eine Methode geschrieben, die mehr Zeit braucht als ich wünsche. Es hängt von externen Systemen zur Reaktion ab, so dass es langsam ist. Ich habe nicht viel Kontrolle darüber. Aufgrund dieser Methode kann ich diesen Zeitraum nicht warten, sodass ich diese Methode initialisierte und die erforderlichen Parameter im Hintergrund ausführen sollte, während die übergeordnete Methode, die diese zeitaufwändige Methode bezeichnet hat, die Ausführung beendet. < /p>

Ich habe @Async -Annotation der Frühling verwendet, um die Methode als asynchron zu deklarieren. Diese bestimmte Methode wird von restController aufgerufen, die ihre Ausführung beenden, bevor diese asynchrone Methode die Ausführung beendet.
Die Methode wird asynchron ausgeführt, aber die MOMMMEL CALLER -Methode beendet die Ausführung, obwohl die asynchrone Methode noch unvollständig ist, stoppt Stopps abrupt ausführen. Wie kann ich das erreichen, dass die asynchrone Methode ihre Ausführung beendet, obwohl die Anrufermethode früher abgeschlossen ist. Ich kann in der Anrufermethode nicht warten, bis die asynchrone Methode zur Beendigung der Ausführung abgeschlossen ist. < /p>

Code Beispiel
@Service
Klasse TimeconSumingService {< /p>

Code: Select all

@Async("customExecutor")
public  void  callTimeConsumingService( ){

//This call takes time between 50000 miliseconds to 70000 miliseconds
}

}

//Caller Method

@RestController
@RequestMapping("rest/document/content")
public class CallerController
{

@Autowired
TimeConsumingService timeConsumingService;

@LoggingAdvice
@RequestMapping(value="/request", method = RequestMethod.POST )
public String requestContent( @RequestParam(value = "file") MultipartFile file) throws Exception, IOException
{

timeConsumingService.callTimeConsumingService();

}
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post