Travaux planifiés en retard

Bonjour,

Je suis entrain de faire une synchronisation automatisé entre WooCommerce et Dolibarr via des webhooks et des travaux planifiés.

Dolibarr reçoit bien les données de WooCommerce et les mets en attente de traitement le temps que la tâche planifiée s’effectue. Mon problème, c’est qu’elle ne s’effectue jamais et j’ai un petit pictogramme attention avec le message « Retard » qui apparait à coté.
Si je lance manuellement cette tâche, elle fonctionne.

Quelqu’un aurait une idée ou un début de solution ?

Cordialement.

Bonjour,

pour que les tâches planifiées fonctionnent, il faut aussi mettre la tache cron sur votre serveur, est ce que c’est le cas ?

Non ce n’est pas en place, je vais aller essayer merci !

j’ai vu que dans la configuration du module « Travaux planifier » il était possible de tester avec une URL, je génère bien une clé secrète, mais quand je test j’ai ce message d’erreur qui apparait :
« Accès refusé.
Vous essayez d’accéder à une page, région ou fonctionnalité d’un module désactivé, ou sans être dans une session authentifiée, ou avec un utilisateur non autorisé. »

l’utilisateur utilisé est mon admin !

Bonjour,

pourtant c’est la bonne méthode.

l’utilisateur qui execute ton serveur web est il autorisé à lancer la cron que tu as créé ?

C’est l’utilisateur admin que j’ai créer à l’installation de Dolibarr, il à toutes les permissions de Dolibarr…

Je suis sur un serveur mutualisé chez OVH.

je viens de tester sur un ovh mutualisé : ça fonctionne (le user qui execute le serveur web est le même que celui qui execute les cron)

au cas où: vérifie quand même les droits du user (accueil>utilisateurs) et le paramètrage du module.

Si tu lance seulement une tâche depuis le module (le symbole « play » en face une tâche) : ça fonctionne ?

L’admin a bien tous privilèges possibles dans Dolibarr.
J’ai testé en mettant un id dans l’url et c’est la tache « Traitement de toutes les commandes délivrées par crochet Web (WebHooks) » qui me pose problème.
Si je le fais manuellement avec le bouton play, ça fonctionne parfaitement !

ohhh attends!

J’ai un vieux souvenir qui me reviens : sur cet hébergement en mutualisé, j’avais du bidouiller un truc, car le script de lancement des cron n’est pas contenu dans le htdocs, mais dans un autre sous repertoire de l’archive d’installation.

il avait fallu que je mette l’arborescence de l’archive /scripts/cron au même niveau du htdocs renommé.
Et peut être une redirection ou des droits ou une modif du script pour les chemins, je ne sais plus. (et là pas le temps)

Regarde les commande (système) à lancer en bas de la config du module pour savoir quoi mettre où.

Je n’ai plus de répertoire htdocs, tous les répertoires qui étaient dedans sont maintenant à la racine du répertoire général « erp »

c’est ce que je disais : met /script/cron de l’archive d’installation, au même niveau que ton dossier /erp

et il y a autre chose à faire pour que ça marche sur du mutualisé… je jette un oeil quand j’ai le temps.

J’ai bien mis le répertoire /script au même niveau que /erp
Je vais regarder de mon côté en attendant de vos nouvelles :slight_smile:

ok j’ai retrouvé :

pour que ça fonctionne sur du mutualisé OVH (et peut être d’autres mutualisés) :

  • mettre /script/cron de l’archive d’installation, au même niveau que ton dossier /tonrepertoiredolibarr

  • modifier le fichier /script/cron/cron_run_jobs.php : vers le début, il y a des chemins (en dur, ou avec des variables ne pouvant pas être interprêtée, je ne sais plus), il faut les adapter à ton environnement :

require_once "/cheminabsoludetonhebergement/tonrepertoiredolibarr/master.inc.php";
require_once "/cheminabsoludetonhebergement/tonrepertoiredolibarr/cron/class/cronjob.class.php";
require_once '/cheminabsoludetonhebergement/tonrepertoiredolibarr/user/class/user.class.php';

où :
cheminabsoludetonhebergement : c’est le chemin absolu de ton hébergement sur le serveur mutualisé (dispo dans la console ovh par exemple)
tonrepertoiredolibarr : c’est le nom que tu as donné à ton rep dolibarr (« erp » dans ton cas)

la piste est là, mais je ne sais plus si c’est exhaustif ^^

1 « J'aime »

Merci pour votre réponse, désolé d’abuser de votre temps, mais je suis complètement novice et je ne sais pas ce qu’est la console OVH ou du où elle se trouve ?

en te connectant à ton espace client OVH : dans la gestion de ton mutualisé :
tu dois avoir « Chemin du répertoire home » dans l’onglet « FTP-SSH »

Bonjour,
Je reviens vers vous parce que je ne trouve pas de solution :

  • J’ai déplacé mon dossier script pour le mettre au même niveau que mon dossier erp.
  • J’ai modifier le fichier « cron_run_jobs.php » pour remplacer 3 chemins du style « /home/XXXXX/erp/master.inc.php ».
  • J’ai relancé le test via l’url et j’ai toujours le même résultat.

Au niveau de mes Webhooks sur WooCommerce, celui qui envoi les données à la modification d’une commande fonctionne, j’ai mes données en attente sur Dolibarr.
Par contre, celui qui envoi les données à la création d’une commande, m’envoi un message d’erreur 401 Unauthorized.

Donc j’ai des problèmes de droit sur Dolibarr et WooCommerce, les deux sont ils liés ?

Bonjour,

pour le premier problème, vu que ça fonctionne chez moi (et surement chez plein de monde) c’est que tu as fais un truc de travers.

Regarde les logs de dolibarr et d’apache pour caractériser plus finement l’erreur.

Pour la 2eme question

ouvre un nouveau post (1 post = 1 problématique … sinon les questions/réponses se croisent dans tous les sens)

D’accord, je suis vraiment novice, ou est ce que je peux trouver ces différents logs ?

les log dolibarr : en activant le module de log (trace, je ne sais plus comment il s’appelle)
les logs serveur : chez ton hébergeur. (si tu ne trouves pas, demande leur)

1 « J'aime »

Je n’ai plus le message d’accès refusé,
maintenant j’ai ça « cronjobid: 5 priority=90 entity=1 label=ECommerceProcessPendingWebHooks - not qualified cron_run_jobs.php » quand je test avec l’url & ça ne lance plus la tache.