diff --git a/src/main/java/no/nibio/vips/logic/service/LogicService.java b/src/main/java/no/nibio/vips/logic/service/LogicService.java index 04a9b89ecd9d5b299ad3d6a0bb126bad91c4c06b..1709b624e2be9d3c0508b431149cd1d57ce19f6a 100644 --- a/src/main/java/no/nibio/vips/logic/service/LogicService.java +++ b/src/main/java/no/nibio/vips/logic/service/LogicService.java @@ -22,6 +22,7 @@ package no.nibio.vips.logic.service; import com.ibm.icu.util.ULocale; import java.util.TimeZone; import de.micromata.opengis.kml.v_2_2_0.Kml; +import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; @@ -487,7 +488,29 @@ public class LogicService { return Response.ok().entity(observations).build(); } - + /** + * Service available locally for cron jobs. Most useful on test servers + * @return + */ + @GET + @Path("batch/updateforecastcaches") + @Produces("text/plain;charset=UTF-8") + public Response updateForecastCaches() + { + //System.out.println(httpServletRequest.getHeader("X-Forwarded-For")); + if(!ServletUtil.getClientIP(httpServletRequest).equals("127.0.0.1")) + { + return Response.status(Response.Status.UNAUTHORIZED).build(); + } + Date start = new Date(); + SessionControllerGetter.getForecastBean().updateForecastResultCacheTable(); + SessionControllerGetter.getForecastBean().updateForecastSummaryTable(SystemTime.getSystemTime()); + Long timeLapsed = new Date().getTime() - start.getTime(); + DateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + return Response.ok().entity("Forecast caches were successfully updated with data from today (" + + format.format(SystemTime.getSystemTime()) + + "). Time spent=" + timeLapsed + " milliseconds.\n").build(); + } private ManagerResource getManagerResource() {