// ---------------------------------------------------------------------------------------------------- protected synchronized void taskDone(ParserTask task) { // Solo hace algo si la tarea finalizada era del trabajo en curso y no una antigua if (task.jobID.equals(getCurrentJobID())) { // Crea el status ParserWorkerStatus pws = new ParserWorkerStatus(); pws.hotelDataList = task.hotelDataList; // Decrementa el numero de tareas en ejecucion m_numTasksForJob--; // Actua dependiendo de lo que quede if (m_numTasksForJob > 0) { // **** AVISAR DE QUE SE HA TERMINADO CON UNA DE LAS PAGINAS pws.type = PWStatusType.PageEnded; m_monitor.processingEnded(false, pws); } else if (m_numTasksForJob == 0) { // **** AVISAR DE QUE SE HA TERMINADO CON TODAS LAS PAGINAS Tracer._info("***** All parsing tasks have ended *********************************"); pws.type = PWStatusType.AllPagesEnded; m_monitor.processingEnded(false, pws); } else { // No deberÃa salir una cuenta negativa String MSG = "Task count for job decremented below zero"; Tracer._error(MSG); m_monitor.processingEnded(true, MSG); } } }
// ---------------------------------------------------------------------------------------------------- protected synchronized void nextPageUrl(String nextPageUrl) { // Incrementa el numero de tareas que tiene este trabajo m_numTasksForJob++; // *** AVISA PARA QUE SE PARSEE LA SIGUIENTE PAGINA DEL TRABAJO ParserWorkerStatus pws = new ParserWorkerStatus(); pws.type = PWStatusType.ParseNextPage; pws.nextPageUrl = nextPageUrl; m_monitor.processingEnded(false, pws); }