>en mettant en place un système de « lock » qui autorise l'exécution du cron que si le précédent est bien terminé.
Oui il s'agit d'une demande très ancienne sur le tracker de bogue qui n'a toujours pas été considérée http://tracker.moodle.org/browse/MDL-17783 http://tracker.moodle.org/browse/MDL-16257 et dont la réponse a été (un peu trop comme d'habitude avec Moodle 2.x) une usine à gaz http://tracker.moodle.org/browse/MDL-25499 qui va nécessiter de nombreux mois de mises en oeuvre ...
>Sur notre Moodle, il y a 95 instances de l'activé ciiexamen, mais seulement 2 sont visibles. Malgré cela, toutes les instances sont traitées par le cron... Et cela génère des erreurs, notamment en raison d'examens c2i qui ne sont plus ouverts sur la plateforme...
mais alors si ces examens ne sont plus sur la plate-forme, pourquoi les garder dans Moodle ?
>Dans notre cas, traiter que les instances visibles semble être une bonne chose. Peut être qu'il y a un raison pour laquelle le cron traite toutes les activités qu'elles soient visible ou non. Si oui, laquelle ?
le cron ne peut pas traiter seulement les instances visibles de l'activité c2iexamen en situation normale. En effet si un enseignant 'demasque' cette instance juste au début de son cours, alors aucun étudiant du cours ne sera inscrit sur la plate-forme C2I tant le cron n'a pas encore tourné.
de plus la synchro du carnet de notes doit se faire, que l'instance soit visible ou pas .
Il me semble que faire tourner le cron toutes les 5 minutes est excessif.
Une solution possible serait d'éditer le fichier mod/ciiexamen/version.php comme suit :
$module->cron = 60; // Period for cron to check this module (secs)
en mettant par exemple 1200 ce qui voudra dire que dans votre environnement (toutes les 5 minutes soit 300 sec) la fonction cron de c2iexamen ne sera lancée qu'une fois sur 4 par le cron de Moodle ... ne pas oublier d'ajouter 1 a
$module->version = 2011092800;
et de revisiter adminstration/Notifications pour prise en compte ...
A+