IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Tache de cron


Sujet :

Langage PHP

  1. #1
    Membre averti
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2020
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mars 2020
    Messages : 21
    Par défaut Tache de cron
    Bonjour
    Sur une appli déployée sur OVH j'ai déployé à la racine une tache de cron qui fait appel à une fct contenue dans une ressource de l'espace de nom de l'application web. Lorsque la tâche est lancée en automatique, la fonction appelée fait défaut systématiquement. j'ai procédé comme ceci pour faciliter la maintenance.

    [2025-05-06 04:20:02] ## OVH ## START - 2025-05-06 04:20:02.250973 executing: /usr/local/php7.4/bin/php /homez.881/centresoe/marche/gpx/cron-maj-gpx.php
    [2025-05-06 04:20:02] Procédure de standardisation des gpx<br>
    [2025-05-06 04:20:02]
    [2025-05-06 04:20:02] Fatal error: Uncaught Error: Call to undefined function altimetrie() in /home/centresoe/marche/gpx/cron-maj-gpx.php:59
    [2025-05-06 04:20:02] Stack trace:
    [2025-05-06 04:20:02] #0 /home/centresoe/marche/gpx/cron-maj-gpx.php(73): cron_maj_gpx()
    [2025-05-06 04:20:02] #1 {main}
    [2025-05-06 04:20:02] thrown in /home/centresoe/marche/gpx/cron-maj-gpx.php on line 59
    [2025-05-06 04:20:02]
    [2025-05-06 04:20:02] ## OVH ## END - 2025-05-06 04:20:02.310512 exitcode: 255
    Après plusieurs essais, en supprimant en entête de la fct la ressource "namespace ressources;" la tâche s'effectue normalement.
    Comment procéder pour pallier à ce pb ?
    Dois-je dupliquer la fct dans ma tâche de cron?

  2. #2
    Membre émérite
    Homme Profil pro
    Autre
    Inscrit en
    Juillet 2021
    Messages
    495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Juillet 2021
    Messages : 495
    Par défaut
    Bonjour,

    Dupliquer la fonction est contre-productif car le but d'une fonction est d'être réutilisée.

    Si ta fonction est déclarée dans l'espace de nom ressources, tu peux alors appeler cette fonction via son nom absolu (avec le namespace) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    \ressources\altimetrie();

  3. #3
    Membre averti
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2020
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mars 2020
    Messages : 21
    Par défaut
    j'ai fais le test ça ne marche pas

    dans l'entête de la tache j'ai:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include ('/home/centresoe/marche/gpx/ressources/serveur/maj-altitudes.php');
    et dans l'entête de maj-altitudes.php j'ai:


  4. #4
    Membre chevronné
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2022
    Messages
    480
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2022
    Messages : 480
    Par défaut

  5. #5
    Membre émérite
    Homme Profil pro
    Autre
    Inscrit en
    Juillet 2021
    Messages
    495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Juillet 2021
    Messages : 495
    Par défaut
    Quel est le message d'erreur avec ton dernier test ?

    La fonction altimetrie() n'est pas déclarée dans une classe ?

  6. #6
    Membre averti
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2020
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mars 2020
    Messages : 21
    Par défaut
    l'erreur retournée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Fatal error: Uncaught Error: Call to undefined function altimetrie() in /home/centresoe/marche/gpx/cron-maj-gpx.php:59
    et la fct est déclarée.

    info complémentaire: la tache n'est pas rattachée à l'appli web mais est a sa racine au même niveau que l'index.php

    si j'enlève l'espace de nom en entête du fichier maj-altitudes.php ça marche mais plus à partir de l'appli web

  7. #7
    Membre émérite
    Homme Profil pro
    Autre
    Inscrit en
    Juillet 2021
    Messages
    495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Juillet 2021
    Messages : 495
    Par défaut
    Dans ton fichier cron-maj-gpx.php, il faut bien appeler la fonction avec son nom absolu, c-a-d avec l'espace de nom.
    D'après ton message d'erreur, il semble que tu as n'as pas saisi le namespace avant le nom de la fonction ligne 59.

    Peux t-on voir l'appel de la fonction altimetrie() à la ligne 59 du fichier cron-maj-gpx.php ?

  8. #8
    Membre averti
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2020
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mars 2020
    Messages : 21
    Par défaut
    ci joint le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    //***********************************************************
    //Liste des fichiers gpx
    function cron_maj_gpx(){
    	//$gpx = array();
    	//$villes = array();
    	$retour = array('','','');
    	$listeVilles = liste_villes_array();
    	foreach($listeVilles as $ville){
    		$circuits = liste_crcuits_array($ville);
    		foreach($circuits as $fichier){
    			$retour = \RESSOURCES\altimetrie($ville,$fichier);
    			echo $retour[0].'<br>'."\n";
    		}		
    	}
    echo "Tousles fichiers ont été traités<br>"."\n";
    echo "----------------------------------------<br>";	
    }
    je l'ai relancé il y a une heure car je navais pas mis \ devant RESSOURCES mais même erreur

    [2025-05-06 16:20:02] ## OVH ## START - 2025-05-06 16:20:02.812295 executing: /usr/local/php7.4/bin/php /homez.881/centresoe/marche/gpx/cron-maj-gpx.php
    [2025-05-06 16:20:02] Procédure de standardisation des gpx<br>
    [2025-05-06 16:20:02]
    [2025-05-06 16:20:02] Fatal error: Uncaught Error: Call to undefined function RESSOURCES\altimetrie() in /home/centresoe/marche/gpx/cron-maj-gpx.php:59
    [2025-05-06 16:20:02] Stack trace:
    [2025-05-06 16:20:02] #0 /home/centresoe/marche/gpx/cron-maj-gpx.php(73): cron_maj_gpx()
    [2025-05-06 16:20:02] #1 {main}
    [2025-05-06 16:20:02] thrown in /home/centresoe/marche/gpx/cron-maj-gpx.php on line 59
    [2025-05-06 16:20:02]
    [2025-05-06 16:20:02] ## OVH ## END - 2025-05-06 16:20:02.876072 exitcode: 255

  9. #9
    Membre émérite
    Homme Profil pro
    Autre
    Inscrit en
    Juillet 2021
    Messages
    495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Juillet 2021
    Messages : 495
    Par défaut
    Le message d'erreur a évolué entre les tests :
    Call to undefined function altimetrie() -> erreur sans le namespace
    Call to undefined function RESSOURCES\altimetrie() -> erreur sans (et avec ?) le slash initial

    Refait un test dans une heure pour vérifier si le slash initial est bien pris en compte par ta tâche cron

  10. #10
    Membre averti
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2020
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mars 2020
    Messages : 21
    Par défaut
    C'est fait idem dans le log d'erreur le slach disparait

  11. #11
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Pq ressources en majuscule ?

  12. #12
    Membre averti
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2020
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mars 2020
    Messages : 21
    Par défaut
    En la supprimant de l'espace de nom ça fonctionne donc je le laisse comme ça, quitte à supprimer dans le menu de l'appli l'item correspondant puisque effectué en tâche masquée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. ajouter une tâche dans cron
    Par sebastien74 dans le forum Debian
    Réponses: 4
    Dernier message: 12/11/2013, 21h31
  2. automatisation des taches avec cron
    Par yabo84 dans le forum Administration système
    Réponses: 1
    Dernier message: 28/10/2012, 09h16
  3. Tache plannifiée - Cron en Java
    Par batbat52 dans le forum Général Java
    Réponses: 6
    Dernier message: 06/07/2011, 11h37
  4. Tâches planifiées / Crons en Flex
    Par toopac dans le forum Flex
    Réponses: 11
    Dernier message: 26/03/2010, 16h09
  5. Planifier une tache avec Cron
    Par Sarrus dans le forum Linux
    Réponses: 7
    Dernier message: 29/04/2007, 22h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo