|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--java.lang.Thread | +--VerifThread
Cette classe génère un processus qui pour toutes les entrées de la tables Page
(c'est à dire toutes les pages déjà parcourues) vérifie que la page existe encore. Dans le
cas contraire cette page est supprimée de la base de données.
Rem: La suppression d'une page entraine également la suppression de tous les liens qu'elle contenait et des mots qui désignaient ceux-ci s'ils sont devenus inutils.
Rem: Les processus engendrés par cette classe sont appelés dans le reste de cette documentation 'processus de vérification'.
supp_page(INTEGER)
dans bd/crawler.sql."Field Summary | |
protected Pgsql |
bd
Objet permettant de communiquer avec la base de données du crawler. |
protected int |
BOUCLE_MAX
Nombre maximum de tentatives de répétitions de requêtes avant ne soit considérée comme échouée. |
protected boolean |
first_currval
Drapeau indiquant si une requête SELECT currval('page_id_page_seq') a déjà été
envoyée. |
protected int |
id_max
Le plus grand identificateur de page utilisé dans la base de données. |
protected int |
id_page
Identificateur de la page à vérifier et éventuellement à supprimer. |
protected boolean |
is_new_page
Champ permettant de savoir si une nouvelle page à été insérée dans la base de données par un processus de navigation. |
protected java.io.PrintStream |
outLog
Flux d'entrée sur le fichier de journalisation. |
protected boolean |
to_finish
Drapeau signalant que le processus doit s'arrêter. |
Fields inherited from class java.lang.Thread |
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY |
Constructor Summary | |
VerifThread(java.lang.String nom,
java.io.PrintStream outLog)
Construit un nouvel objet VerifThread . |
Method Summary | |
protected boolean |
existId(int id)
Vérifie que l'identificateur de page passé en argument existe bien dans la base de données du crawler, c'est à dire qu'il correspond à une page existante. |
void |
finish()
Permet un arrêt propre du processus. |
protected int |
maxId()
Recherche le plus grand identificateur de page utilisé dans la base de données. |
protected void |
newMaxId()
Recherche le nouvel identificateur maximum d'une page dans la base de données. |
void |
newPage()
Avertit le processus de vérification qu'une nouvelle page a été insérée dans la base de données en positionnant le drapeau is_new_page à true . |
protected int |
nextId()
Retourne le plus petit identificateur de page valide dans la base de données du crawler. |
void |
run()
Méthode déterminant le fonctionnement du processus. |
protected int |
suppPage(java.lang.String sPage)
Supprime une page n'existant plus sur le net de la base de données du crawler. |
protected void |
suppPictFile(java.lang.String fichier)
Supprime un fichier image du système. |
protected int |
verifPage()
Vérifie que la page correspondant à l'identificateur courant ( id_page ) existe encore
sur le net et la supprime de la base de données si ce n'est plus le cas. |
Methods inherited from class java.lang.Thread |
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getContextClassLoader, getName, getPriority, getThreadGroup, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setName, setPriority, sleep, sleep, start, stop, stop, suspend, toString, yield |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
protected final int BOUCLE_MAX
protected boolean to_finish
protected java.io.PrintStream outLog
NavThread
)
NavThread
protected int id_page
protected int id_max
protected boolean is_new_page
protected boolean first_currval
SELECT currval('page_id_page_seq')
a déjà été
envoyée. En effet, tant que cela n'a pas été fait on ne peut pas faire de requête SELECT
nextval('page_id_page_seq')
protected Pgsql bd
Constructor Detail |
public VerifThread(java.lang.String nom, java.io.PrintStream outLog)
VerifThread
.
nom
- le nom du processusoutLog
- le flux permettant d'écrire dans le fichier de journalisationoutLog
Method Detail |
public void finish()
L'arrêt n'est pas immédiat, il s'agit plutôt d'une demande d'arrêt permettant au processus de terminer ce qu'il est en train de faire et l'empéchant d'enchainer sur une nouvelle tâche. Il existe cependant un cas ou l'arrêt est quasiment immédiat: celui où le processus est bloqué en attente qu'au moins une page soit insérée dans la base de données. Le processus est alors sorti de sont attente et est terminé.
public void newPage()
is_new_page
à true
.
Cette fonction n'est utilisée que par les processus de navigation (NavThread
) car ce
sont les seuls à pouvoir insérer quoi que ce soit dans la base de données.
is_new_page
protected int maxId() throws java.sql.SQLException
java.sql.SQLException
- En cas d'erreur engendrant l'interruption du processusprotected void newMaxId() throws java.sql.SQLException
Cette méthode permet de mettre à jour le champ id_max
.
java.sql.SQLException
- En cas d'erreur de communication avec la base de donnéesid_max
protected boolean existId(int id) throws java.sql.SQLException
id
- l'identificateur de page dont on veut vérifier l'existance.
true
si l'identificateur existe.
false
dans le cas contraire.
java.sql.SQLException
- En cas d'erreur de communication avec la base de donnéesprotected int nextId()
protected int suppPage(java.lang.String sPage) throws java.sql.SQLException
La page supprimée est la page correspondant à l'identificateur de page courant stocké
dans le champ id_page
.
Cette méthode se déroule en deux temps:
INTEGER supp_page(INTEGER)
de la base de données pour
supprimer la page ainsi que tous les liens (http, mail et img) et mots qui ne sont contenus
que dans cette page. Supprime aussi le site auquel appartient la page si celui ne contient
pas d'autre page.
void suppPictFile(String)
pour supprimer tous les fichiers
contenant des images qui ont été supprimées de la base de données.
sPage
- l'url de la page à supprimer (utilisé uniquement pour le fichier de journalisation).
supp_page
de la base de données.
java.sql.SQLException
- En cas de problème de communication avec la base de données.suppPictFile(String)
protected void suppPictFile(java.lang.String fichier)
Deux raisons peuvent amener à supprimer un fichier image:
Remarque: les fichiers images se trouvent tous dans le répertoire ../data/
.
fichier
- Le nom du fichier contenant une image.protected int verifPage() throws java.sql.SQLException
id_page
) existe encore
sur le net et la supprime de la base de données si ce n'est plus le cas.
supp_page
de la base de données.
java.sql.SQLException
- En cas de problème de communication avec la base de données.suppPage(java.lang.String)
,
"Pour en savoir plus sur la suppression d'une page, voir la fonction supp_page
dans le fichier crawler.sql."public void run()
La majorité des champs de l'objet sont initialisés dans le constructeur, cependant certains le sont dans cette méthode:
bd
)
id_max
)
run
in interface java.lang.Runnable
run
in class java.lang.Thread
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |