Jump to content

[Résolu] tache cron avec 1&1


Recommended Posts

Bonsoir a tous.

 

J'aimerais sil vous plait une aide importante concernant les produits de mon fournisseur il ma envoyer un module pour être averti de son stock.

 

J'ai installé ce module qui ce nomme importation pour dropshipping.

 

Dans ce module tout est bien configuré les produits s'importe parfaitement bien dans ma boutique le problème est l’exécution des mise a jours automatique qui nécessite de planifier une tache cron voici le message que j'ai en bas de page de ce module:

 

Vous pouvez également exécuter l'importation en utilisant une tâche cron:27 3 * * * /usr/bin/env php /homepages/25/d507664932/htdocs/mondossiersite/mon sous dossier/modules/module d'importation/cron.php token=AX........

Notez bien que le chemin vers votre exécutable PHP (/usr/bin/env php) peut être différent.

 

Suite a ce message j'ai installer un module du nom crontab pour prestashop, avant de me lancer la dedans j'ai effectuer une tache cron avec 1&1  je me suis donc connecté en ssh et mis les commandes suivantes: php5 $HOME/mondossiersite/mon sous dossier/modules/module d'importation/cron.php token=AX........

j'ai ensuite enregistrer le tout via la commande aucune erreur n'a été détécté.

 

Je suis reparti sur le module crontab pour prestashop  il me propose ceci: Choisissez la méthode a utiliser pour executer les tâches.  

 

J'ai le choix de choisir  fréquentation de la boutique, crontab du serveur, service web cron

 

J'ai donc séléctionné crontab du seveur plus bas voila ce qu'il me propose plus bas:

 

"Crontab du serveur" est la meilleure méthode, mais uniquement si votre serveur utilise Linux et que vous avez accès à crontab. Dans ce cas, ajoutez la ligne suivante à votre fichier crontab.

* * * * * php -f /homepages/25/d507664932/htdocs/mondossiersite/mon sous dossier/modules/module d'importation/cron.php token=AX........

 

je ne sais pas ou ajouter ce qu'il me demande je ne sais pas ou se trouve le fichier cron?

 

j'ai ignoré cette parti et je suis aller plus bas on me demande d'ajouter une tache et donc d'entrée une url et la je me demande si l'erreur ne vient pas de la dans url j'ai mis: h..p:./monsiteinternet.fr/mondossiersite/mon sous dossier/modules/module d'importation/cron.php

 

j'ai demander a ce qui exécute toute les heures et voila aucune tache n'est effectué j'ai toujours le message suivant 

URL Planification Dernière exécution Action hp:./monsiteinternet.fr/mondossiersite/mon sous dossier/modules/module d'importation/cron.php 0 * * * * Jamais

 

Voila toute ma procédure pouvez vous m'aider sil vous plait?

 

Cordialement.

Edited by ventesmultimedia (see edit history)
Link to comment
Share on other sites

  • 2 months later...

Bonsoir, je reviens sur mon poste auquel je n'ai reçu aucune réponse.

J'ai donc trouvais la solution cela sera utile à tout ce qui n'ont pas de connaissance dans ce domaine.

Certains modules  proposent de crée une tache cron qui ne permet pas d'effectuer tout cela dans le système, il faut donc mettre l'url comme indiqué dans le module sauf qu'il faut trouver le chemin de l'exécutable. Une fois cela trouvé vous devez passer par la commande wget certain module fonctionne par la navigation comme c'était le cas pour mon module c'est de la que venaient l'erreur.

Dans mon cas, j'ai entré la commande comme ce qui suit : */1 * * * * kunden/usr/bin/wget http://www.monsite.fr/modules/mettez le reste de l'url que le module vous a demandez d'entrer

À partir de la toute les minute la tache se met à jour par le navigateur.

Cordialement.

Edited by ventesmultimedia (see edit history)
Link to comment
Share on other sites

  • 2 months later...

J'ai installé le module d'import et j'ai installé le module crontab pour prestashop : http://addons.prestashop.com/fr/outils-administration-modules-prestashop/671-crontab-for-prestashop.html. Ça c'est OK.

Je ne comprends pas cette partie de ton explication : 

mettre l'url comme indiqué dans le module sauf qu'il faut trouver le chemin de l'exécutable. Une fois cela trouvé vous devez passer par la commande wget certain module fonctionne par la navigation comme c'était le cas pour mon module c'est de la que venaient l'erreur.

Dans mon cas, j'ai entré la commande comme ce qui suit : */1 * * * * kunden/usr/bin/wget http://www.monsite.fr/modules/mettez le reste de l'url que le module vous a demandez d'entrer

 

 

 

1.) il faut renseigner quelle url dans le module crontab ? 

 

2.) Comment trouver le chemin de l'executable ?

 

3.) Enfin, la commande finale est à entrer sur putty ? A quoi correspond kunden ? Tu avais quel hébergeur ? 

 

Un grand merci à toi ;)

Link to comment
Share on other sites

En fait, ce que je comprends pas c'est quelle tâche je dois entrer et comment. La tache du module d'import dropshopping ou la tache du module crontab sous "Crontab du serveur".

 

:blink:

Désolé de répondre que maintenant, j'étais occupais.

 

Cela dépends-tu chez quel hébergeur ?

Link to comment
Share on other sites

Pas de souci.

 

Je suis chez 1&1 d'ou le kunden.

 

Tu remplies la case URL du module crontab ? Si oui, avec quoi ? 

 

La ligne de commande dans le module d'import du type : Vous pouvez également exécuter l'importation en utilisant une tâche cron:27 3 * * * /usr/bin/env php /homepages/25/d507664932/htdocs/mondossiersite/mon sous dossier/modules/module d'importation/cron.php token=AX........

Notez bien que le chemin vers votre exécutable PHP (/usr/bin/env php) peut être différent

 

Tu en fais quoi ?

Link to comment
Share on other sites

Pas de souci.

 

Je suis chez 1&1 d'ou le kunden.

 

Tu remplies la case URL du module crontab ? Si oui, avec quoi ? 

 

La ligne de commande dans le module d'import du type : Vous pouvez également exécuter l'importation en utilisant une tâche cron:27 3 * * * /usr/bin/env php /homepages/25/d507664932/htdocs/mondossiersite/mon sous dossier/modules/module d'importation/cron.php token=AX........

Notez bien que le chemin vers votre exécutable PHP (/usr/bin/env php) peut être différent

 

Tu en fais quoi ?

N'utilise pas le module crontab celui-ci te servira a rien du tout, donc désactive le.

 

Je disais tout à l'heure de chercher ton chemin en absolu mais j'ai oublié que celui ne te servira a rien ( les command donné par 1&1 sont complétement fausse pour exécuter une command interne et je leur ai fait part mais bon....)dans la mesure ou le module de dropshipping n'accepte pas une command interne il faut donc mettre wget pour que la tâche fonctionne donc faire ce qui suit:

 

1- se connecter dans putty est taper la command crontab -e

 

2- Aller dans paramètre du module est récupéré l'URL ( qui se trouve en bas de page)

 

3- Toujours dans putty appuie sur la touche i à ce moment la il yaura --insert-- en bas à gauche ce qui signifie que vous pouvez maintenant entrer une command.

 

4- Ajouter la ligne suivante: 0 */3 * * * wget http://www.tonsite.fr/modules/dropimport/cron.php?token=....... ( Ceci est l'URL qui se trouve dans le paramètre du module il faut juste copier et coller juste après wget

Attention a bien laisser un espace entre wget et http........

 

5- dans putty appuyer sur échape ensuite appuer sur :wq puis entrer.

 

6- Voila la command est enregistrer est le 0 */3 * * * signifie que la tâche s'exécutera toutes les 3 heures.

 

Pour tester si cela fonctionne faire ceci dans putty: wget http://www.tonsite.fr/modules/dropimport/cron.php?token=.......  faire entrer si tout ce passe bien tu aura ceci comme message: Connecting to www.tonsite.fr|ton ip serveur|:ton port.. connected.

 

Tenez moi au courant si cela ne fonctionne pas, si tel est le cas je serais en mesure de vous dire d’où vient le problème.

 

Cordialement.

 

Edited by ventesmultimedia (see edit history)
Link to comment
Share on other sites

Ok merci. 

 

L'url dans le module d'import c'est ça 

 

 /usr/bin/env php /homepages/0/dxxxxxxxx/htdocs/modules/dropimport/cron.php token=------  

 

?

 

Oui c'est celle-ci sauf que tu doit juste copier modules/dropimport/cron.php token=------  donc tu ne copie pas ce qu'il y a avant c'est a dire  /usr/bin/env php /homepages/0/dxxxxxxxx/htdocs/

 

Ce qui pour toi donne ça 0 */3 * * * wget http://www.tonsite.fr/modules/dropimport/cron.php?token=.......

Link to comment
Share on other sites

Ok. Bon visiblement c'est mieux. Tu es sur pour le "?" entre php et token ?

 

Les produits ne se chargent pas dans la boutique pour le moment :(

 

Oui j'en suis sur en faite l'auteur du module a oublié d'ajouter le ? et j'ai du cherchais comme un grand le problème je te raconte pas le parcourt.

 

Donc pour toi il faut que php et token soit coller sinon ça ne marchera pas donc avec ceci 0 */3 * * * wget http://www.tonsite.fr/modules/dropimport/cron.php?token=....... cela fonctionnera et tes produit ce mettrons à jours automatiquement. Test dans la configuration du module dans " affichier les catégories" coche dans la liste une catégorie et un produit et choisi le plus petit possible sinon tu aura un problème de temps d'exécution ( si tu est en mutualisé bien sur)

Link to comment
Share on other sites

Oui, c'est avec le ?. Je n'ai plus de fail quand je l'ajoute. Merci à toi.

 

Tu étais sous quelle version de Prestashop ? Pour ma part, j'ai essayé 1.4, 1.5.5.0, 15.6.2, 1.6.0.6. Et le meilleur import sans blocage était sous 1.6.0.6 en local. En ligne, aucun import n'est allé au bout. Et je n'importe pas tout.

 

Le problème est que lors de l'importation via le module, l’importation se bloque et je suis obligé de la relancer et certains articles passent à l'as.

 

J'ai testais et les deux commandes fonctionne.

Oui je viens de tester :) Merci

Edited by Hlavenet (see edit history)
Link to comment
Share on other sites

Oui, c'est avec le ?. Je n'ai plus de fail quand je l'ajoute. Merci à toi.

 

Tu étais sous quelle version de Prestashop ? Pour ma part, j'ai essayé 1.4, 1.5.5.0, 15.6.2, 1.6.0.6. Et le meilleur import sans blocage était sous 1.6.0.6 en local. En ligne, aucun import n'est allé au bout. Et je n'importe pas tout.

 

Le problème est que lors de l'importation via le module, l’importation se bloque et je suis obligé de la relancer et certains articles passent à l'as.

 

Oui je viens de tester :) Merci

Moi j'ai la version 1.6.0.6.

 

Les versions n'on rien à voir la dedans le problème vient de 1&1 qui bloque le script ce qui fait que l'importation ce coupe. Déja tu devrais ajouter un php.ini en racine et ajouter dans ce fichier une ligne qui permet d'augmenter l'exécution de 60 secondes au lieu de 30 secondes.

 

Link to comment
Share on other sites

Oui pour 1.6.0.6 ça passe mais le fournisseur qui m'avait dit de partir sous 1.5 car  selon lui son système était pas compatible sous 1.6.

 

Ok. Tu as un exemple de code à proposer ? Ca permet de moins couper, c'est ça ? 

 

Sinon, je vais les importer par petits groupes sans mettre à jour les produits existants. A voir

Edited by Hlavenet (see edit history)
Link to comment
Share on other sites

Ok. Tu as un exemple de code à proposer ? Ca permet de moins couper, c'est ça ? 

 

Sinon, je vais les importer par petits groupes sans mettre à jour les produits existants. A voir

Oui voila,en gros il demande au serveur d'attendre 60 seconde le temps qu'il transfert les produits. Sur les serveurs dédié ca pose pas de problème sauf en mutualisé.

 

Pour le code tu met tout simplement:

max_execution_time = 30

Et je te conseil d'ajouter pour les images etc:

upload_max_filesize = 32M

post_max_size = 32M

Link to comment
Share on other sites

Créer toi aussi un fichier phpinfo.php en racine et appel le dans la navigateur ce qui donne http://www.tonsite.fr/phpinfo.php tu fait entrer.

Ensuite tu fais ctrl+f une fenêtre en bas à gauche devrait apparaitre (ce qui est le cas pour mozilla) ensuite tu tape dans cette barre de recherche ceci: execution ceci va te sélectionner la modification que tu a fait sur le php.ini donc la ligne qui va te souligner sera: max_execution_time dans la colonne de droite vérifie bien que tu a 60 secondes si oui c'est parfait.
 

Link to comment
Share on other sites

Ok. Merci.

 

max_execution_time = 60 non ?

 

On peut mettre plus ?

Oui pardon j'ai oublié de modifier 30 par 60 donc oui tu peux mettre plus mais bon cela ne sert strictement a rien les serveurs mutualisés de 1&1 sont programmé pour ne pas dépassé un certain temps et a 60 secondes il ne devrait pas prendre en compte je tiens cela de leur service technique de niveau 2 pas ceux en hotline eux ne connaissent pas grand chose donc la source est fiable

Link to comment
Share on other sites

Et pour t'occuper en soirée voici une astuce et cela est à faire directement dans le dossier de dropimport voici la démarche:

Rends-toi sur module/dropimport tu va trouver un fichier cron.php tu le transfert sur ton pc ensuite tu le modifie et tu ajoute cette ligne:

set_time_limit(0);

Ceci est à mettre juste en dessous de la ligne: Module::getInstanceByName('dropimport')->cron(); ce qui donne au final :

Module::getInstanceByName('dropimport')->cron();
set_time_limit(0);
?>


Et toutes les lignes au dessus de: Module::getInstanceByName('dropimport')->cron(); n'y touche surtout pas.
 

Ensuite enregistre et transfert par ftp en écrasant celui par défaut. Cette méthode permet au module d'allonger le temps d'exécution en complément du php.ini et cela marche plutôt bien je n'ai pas eu de souci.

 

Cordialement.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...