- Apply a "shouldShutdownWorker"-check in "ScheduledTasks.handleNewAssignments()", when there was a "connection-error" in the previous request. This makes sure that the Worker will honor the user's shut down request, even if it's "stuck" in a connection-error loop.
- Optimize the input-streams creation in the "FullTextsController".
This commit is contained in:
parent
d73a99b1c0
commit
373bfa810b
|
@ -1,6 +1,8 @@
|
|||
package eu.openaire.urls_worker.components;
|
||||
|
||||
import eu.openaire.urls_worker.UrlsWorkerApplication;
|
||||
import eu.openaire.urls_worker.controllers.FullTextsController;
|
||||
import eu.openaire.urls_worker.controllers.GeneralController;
|
||||
import eu.openaire.urls_worker.plugins.PublicationsRetrieverPlugin;
|
||||
import eu.openaire.urls_worker.util.AssignmentsHandler;
|
||||
import org.apache.commons.io.FileUtils;
|
||||
|
@ -24,6 +26,8 @@ public class ScheduledTasks {
|
|||
@Scheduled(fixedDelay = 1) // Request the next batch immediately after the last one finishes.
|
||||
public void handleNewAssignments() {
|
||||
if ( AssignmentsHandler.hadConnectionErrorOnRequest ) {
|
||||
if ( GeneralController.shouldShutdownWorker ) // Make sure the worker shuts-down, in case the user sends the relevant request, while the worker is stuck in a data-request error-loop.
|
||||
UrlsWorkerApplication.gentleAppShutdown();
|
||||
try {
|
||||
Thread.sleep(900_000); // Sleep for 15 mins to stall the scheduler from retrying right away, thus giving time to the Controller to recover.
|
||||
} catch (InterruptedException ie) {
|
||||
|
|
|
@ -14,7 +14,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
|||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
|
@ -80,7 +81,7 @@ public class FullTextsController {
|
|||
return ResponseEntity.ok()
|
||||
.contentType(MediaType.APPLICATION_OCTET_STREAM)
|
||||
.header(HttpHeaders.CONTENT_DISPOSITION, "inline; filename=\"" + zipName + "\"")
|
||||
.body(new InputStreamResource(new FileInputStream(zipFileFullPath)));
|
||||
.body(new InputStreamResource(Files.newInputStream(Paths.get(zipFileFullPath))));
|
||||
} catch (Exception e) {
|
||||
String errorMsg = "Could not load the FileInputStream of the zip-file \"" + zipFileFullPath + "\"!";
|
||||
logger.error(errorMsg, e);
|
||||
|
@ -104,7 +105,7 @@ public class FullTextsController {
|
|||
return ResponseEntity.ok()
|
||||
.contentType(MediaType.APPLICATION_OCTET_STREAM)
|
||||
.header(HttpHeaders.CONTENT_DISPOSITION, "inline; filename=\"" + file.getName() + "\"")
|
||||
.body(new InputStreamResource(new FileInputStream(fullTextFileFullPath)));
|
||||
.body(new InputStreamResource(Files.newInputStream(Paths.get(fullTextFileFullPath))));
|
||||
} catch (Exception e) {
|
||||
String errorMsg = "Could not load the FileInputStream of the full-text-file \"" + fullTextFileFullPath + "\"!";
|
||||
logger.error(errorMsg, e);
|
||||
|
|
Loading…
Reference in New Issue