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

MVC PHP Discussion :

Route pour lancer un crontab


Sujet :

MVC PHP

  1. #1
    Membre éclairé Avatar de haltabush
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    726
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 726
    Points : 835
    Points
    835
    Par défaut Route pour lancer un crontab
    [Inutile de lire le début, ça c'est résolu ^^ Rdv ici

    Bonjour,
    J'ai un soucis lorsque que je tente de faire appel à un script via la fonction fopen. J'ai pourtant déjà utilisé cette fonction à cette fin, sans problème...
    Voici le message d'erreur que je reçoit :
    Warning: fopen(http://www.google.fr) [function.fopen]: failed to open stream: Une tentative de connexion a échoué car le parti connecté n'a pas répondu convenablement au-delà d'une certaine durée ou une connexion établie a échoué car l'hôte de connexion n'a pas répondu. in C:\wamp\www\intralltub_general\crontabs\launchRelance.php on line 4

    Fatal error: Maximum execution time of 30 seconds exceeded in C:\wamp\www\intralltub_general\crontabs\launchRelance.php on line 4
    Je précise que la variable de configuration "allow_url_fopen" est à On. Le fichier que je tente d'appeller est la page de Google (par exemple, j'ai essayé avec d'autres naturellement).
    Si vous voyez une quelconque erreur là dedans, je suis tout ouie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?php
    //Fichier "launchRelance.php"
    session_start();
    $_SESSION['verifAppel']=true;
    $fic=fopen('http://www.google.fr','r');
    print_r($fic);
    ?>

    [Recherche de solution alternative : explications]

    Le but de la manoeuvre est de lancer un script de manière automatique, via une tache planifié Windows. Pour ça, je ne peux pas passer par le systeme de fichier car j'utilise le framework Zend, et je dois faire appel à une action d'un controlleur : je dois donc passer par le protocole http. Ces 4 lignes servent à ça : je compte faire appel à ce petit script via l'invite de commande, qui se chargera de lancer mon action. SI vous connaissez une solution pour lancer une url via l'invite de commande Windows, ça me va aussi

    Voilà mon petit script .bat, si ça peut aider :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    cd c:\wamp\www\intralltub_general\crontabs\
    c:\wamp\php\php.exe -f launchRelance.php

    Ps : bon je pensais parler seulement de la fonction fopen, j'ai posté dans ce forum du coup, mais finalement je parle de tache planifiée, de script windows, du ZF, etc... Si vous voulez déplacer ce message, libre à vous (moi je vois franchement pas où le caser )

  2. #2
    Membre éclairé Avatar de haltabush
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    726
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 726
    Points : 835
    Points
    835
    Par défaut
    J'ai trouvé!
    C'est une histoire de proxy : il faut le lui préciser... J'ai donc utilisé cUrl, ça donne ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    session_start();
    $_SESSION['verifAppel']=true;
    $p_curl=curl_init('http://www.google.fr');
    curl_setopt($p_curl, CURLOPT_PROXY, 'ipduproxy:portduproxy');
    //edit : j'avais oublié cette ligne, c'est plus mieux comme ça :
    curl_setopt($p_curl, CURLOPT_RETURNTRANSFER, true);
    curl_exec($p_curl);
    echo '<pre>'.print_r(curl_getinfo($p_curl), true).'</pre>';

  3. #3
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    En lisant ton post, tout a l'heure, je me suis dit "j'ai déjà vécu cette journée ou quoi?". J'aurai juré avoir déjà vu un probleme de ce genre dans le forum hier !
    Et j'ai remis le doigt dessus quand t'as trouvé ta solution !
    Le post en question http://www.developpez.net/forums/sho...ighlight=proxy

    Tout ca pour dire que tu n'es pas obligé d'utiliser curl apparemment!

  4. #4
    Membre éclairé Avatar de haltabush
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    726
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 726
    Points : 835
    Points
    835
    Par défaut
    Effectivement
    J'avais chercher sur le forum, mais bon comme d'hab pas avec les bons mots clefs
    Je pense conserver Curl, j'ai mon serveur perso donc pourquoi pas... Il y a des différences de performances?

  5. #5
    Membre éclairé Avatar de haltabush
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    726
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 726
    Points : 835
    Points
    835
    Par défaut
    Bon, j'ai encore un soucis...
    Lorsque je lance mon truc dans la console, ça ne marche pas avec Curl (fonciton indéfinie, apparement il ne charge pas les extensions, si vous avez des infos...).

    J'ai donc pris la solution que Koopajah m'a donné, et j'ai un nouveau message d'erreur:

    Proxy Error

    The proxy server received an invalid
    response from an upstream server.

    The proxy server could not handle the request GET http://localhost/intralltub_general/...me_ehs/relance.

    Reason: Could not connect to remote machine: Success
    Pour rappel, mon code du crontab est le suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    session_start();
    $_SESSION['verifAppel']=true;
     
    $aContext = array(
        'http' => array(
            'proxy' => 'xxxx:80', // This needs to be the server and the port of the NTLM Authentication Proxy Server.
            'request_fulluri' => true,
            ),
        );
     
    $cxContext = stream_context_create($aContext);
    fopen('http://localhost/intralltub_general/programme_ehs/relance', 'r', null, $cxContext);
    Son but est d'appeler l'action d'index du controller relance.
    Je suppose qu'il s'agit d'un problème lié au ZF (il doit pas comprendre les routes, je pense). Peut-on déplacer la discussion là bas? sinon je peux aussi créer un nouveau sujet, éventuellement.

  6. #6
    Membre éclairé Avatar de haltabush
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    726
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 726
    Points : 835
    Points
    835
    Par défaut
    Je pense à un truc, là : ça pourrait pas venir tout simplement du fait qu'il ne faut pas de proxy pour les adresses locales? Mais dans ce cas, pourquoi ça marche pas quand je ne lui en mets pas?
    Pour l'instant, je ne suis sûr que d'une chose : j'ai mal au crâne

    Edit : un élément de réponse : il arrive sur index.php (mon bootstrap) quand je remplace localhost par 127.0.0.1:80 sans proxy, mais il ne trouve pas le controller (?!)
    edit 2 : d'ailleurs, c'est aps le controller qu'il ne trouve pas, mais apparement il prend mon module pour un controlleur

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

Discussions similaires

  1. [debutant] probleme pour lancer sql
    Par tomsoyer dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 04/08/2004, 18h29
  2. [debutant] probleme pour lancer sql
    Par tomsoyer dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 03/08/2004, 23h42
  3. [javac] code pour lancer la compilation des classes
    Par viena dans le forum Général Java
    Réponses: 6
    Dernier message: 19/07/2004, 17h41
  4. Réponses: 2
    Dernier message: 22/04/2004, 13h28
  5. [Kylix] probleme pour lancer le shell
    Par miky dans le forum EDI
    Réponses: 5
    Dernier message: 13/08/2002, 09h39

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