Module Cron - travaux planifiés

Bonjour,

Hormis les soucis de mon autre sujet,

sur la plateforme fonctionnelle: Dolibarr 3.9.3 / PHP 5.4.6 / Mysql 5.5.27

j’ai bien déclaré un travail planifié, et tester en l’activant manuellement, mais celui-ci devant s’exécuter toutes les minutes par exemple, ne se declenche pas et le nombre d’exécution reste figée meme apres un rafraichissement de la page.

Une configuration à faire pour les travaux se déclenchent ?

merci de votre aide.

Bonjour,

tu utilise windows ou Linux pour le serveur ?

Dans les deux cas un un cron job Dolibarr doit être configurer ( pas via l’interface dolibarr, directement sur le système)

Bien à toi

bonjour,

nous sommes chez OVH donc linux.

Je connais bien le cron via le systeme.

quel est l’interet des travaux planifies dans dolibarr, si l’on doit déclare les scripts dans le crontab ?

Est ce qu’on doit pas plutot mettre le cronjobrun de dolibarr dans la crontab qui lui va appele les jobs de dolibarr ?

merci pour votre aide et ce super logiciel qui me simplifie la vie…

Bonjour tbsmc_club

j’ai compris la même chose que toi, et j’essaie de le mettre en place sur un mutualisé pro.

Ce que j’ai fait :

  1. créé les job dans dolibarr, généré la clé
  2. créé un crodolibarr.php à la racine de l’hebergement
    le contenu :
<? header ('location : http://xxxxxxxxxx.com/public/cron/cron_run_jobs.php?securitykey=xxxxxxxxxxx&userlogin=xxxxxxxxxxx'); ?\> 3) créé une tache cron www/crodolibarr.php à executer dans le panel ovh. pourquoi passer par une redirection ? parceque l'url est trop longue pour la mettre en cron directement dans le pannel ovh ^^ (et si j'appelle www.mondomaine.com/crodolibarr.php, ça fonctionne) sauf que ... ça ne fonctionne pas ... quelqu'un a t il déjà mis ça en place sur un ovh mutualisé pro ? tbsmc_club: une remarque en passant, pour limiter les abus, ovh a mis 2 limites en place pour tous les mutualisés : 1) récurrence mini = 1 fois x 2 heures 2) impossible de préciser une heure : c'est exécuté dans le plus court interval de temps (dans les 2h au mini donc) donc si tu veux executer un script toutes les minutes, ça ne fonctionnera pas sur du mutualisé.
2 « J'aime »

Bonjour,

Merci pour ta réponse Arre.

Pour info, j’ai créer 4 jobs avec des scripts différents (besoin de PROD, 1 fois par jour, donc pas de soucis pour les limites OVH)

Dans dolibarr, lorsque tu clique sur le lien de la forme :xxxxxxxxxx.com/public/cron/cron_run_jobs…serlogin=xxxxxxxxxxx
cela lance les jobs planifies dans dolibarr.

Donc cela veut dire que si je met cette URL dans le crontab chez OVH cela va les éxecuter.

=> lorsque j’utilise l’URL, cela exécute tous les jobs actifs dans dolibarr, mais cela ne tient pas compte des horaires de planification…

Voila où j’en suis, si quelqu’un à réussi a implémenté les crons, je pense que cela servira à plus d’un…

Cyrille (tbsmc_club)

Je test le cronjob sur task manager de windows 10 et ca marche pas. Et je crois que le probleme vient de dolibarr. Lorsque je genere le cle et que je copie le lien pour lance le cronjob sa execute pas la tache.ca marche pas tout simplement.

Je test pour le facture recurrent de la version 4.0.1 de dolibarr. mais j’arrive pas a configurer de maniere automatique le cronjob. il faut que je fait manuellement dans outil admin->tache planifier.

Fait moi signe si quelqu’un a reussit a mettre en place de maniere auto.

Merci d’avance.

Je ne sais pas quelle limitations ils ont installé chez ovh, mais c’est tordu pour arriver à contourner le fait de ne pas pouvoir passer de paramètres à un script php en cron …

l’unique méthode que j’ai trouvé est d’ « appeller » le script cron de dolibarr avec un wget.

un truc de ce genre :

<? system("wget 'xxxxxxxxxx.com/public/cron/cron_run_jobs...serlogin=xxxxxxxxxxx'"); ?\> si quelqu'un a quelque chose de plus propre, je suis preneur, mais en tout cas, ça fonctionne comme ça en attendant :happy:

Je n’ai pas trouvé mieux :

function call_url($url) {
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_HEADER, false);
curl_setopt($c, CURLOPT_FOLLOWLOCATION, true);
$output = curl_exec($c);
if($output === false)
trigger_error('Erreur curl : '.curl_error($c),E_USER_WARNING);
else
var_dump($output);
curl_close($c);
}

call_url (« http://YOURURL/cron/cron_run_jobs.php?securitykey=YOURKEY&userlogin=YOURLOGIN »);

Est ce parce qu’on veut ranger ses dossier d’une manière plus optimale.

Bonjour à tous,

je souhaite lancer les travaux planifiés grâce à un crontab OVH.
L’adresse comprenant des paramètres, il n’est pas possible de la programmer telle quelle.
J’ai essayé vos différentes méthode (wget, header ou curl), aucune ne marche.
Quelqu’un a-t-il réussi ?

Très bonne journée à tous,

On s’est posé la même question.

Voici comment on l’a réglé, méthode assez basique mais efficace pour contourner ce problème :

<?php
function call_url($url) {
    $c = curl_init();
    curl_setopt($c, CURLOPT_URL, $url);
    curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($c, CURLOPT_HEADER, false);
    curl_setopt($c, CURLOPT_FOLLOWLOCATION, true);
    $output = curl_exec($c);
    if($output === false)
        trigger_error('Erreur curl : '.curl_error($c),E_USER_WARNING);
    else
        var_dump($output);
    curl_close($c);
}

call_url ("TON_URL_D_APPEL/?securitykey=TA_CLE&userlogin=TON_USER");

Ca me donne ceci lorsque je lance la page :

string(245) "
Forbidden
You don’t have permission to access /htdocs/public/cron/cron_run_jobs.php on this server.
"

L’URL n’est pas bonne ou bien Dolibarr est mal installé. Il faut vérifier les droits et installer correctement le bon dossier de Dolibarr.

Même si le sujet est ancien il reste d’actualité pour OVH. Le code évoqué plus haut fonctionne parfaitement, et l’URL à indiquer est celui qu’on trouve dans les paramètres du module « travaux planifiés » nommé « URL pour vérifier et lancer les travaux planifiés qualifiés depuis un navigateur: »

Donc si on créé un fichier comme évoqué plus haut en mettant cet URL dans la fonction call_url et qu’on appelle ce fichier via une tâche CRON OVH ça fonctionne.

Je ne sais pas si ça dépend des versions de Dolibarr mais l’url que j’utilise est sur ma version contient:
cron_run_jobs_by_url.php
au lieu de
cron_run_jobs.php évoqué plus haut.

<?php
function call_url($url) {
    $c = curl_init();
    curl_setopt($c, CURLOPT_URL, $url);
    curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($c, CURLOPT_HEADER, false);
    curl_setopt($c, CURLOPT_FOLLOWLOCATION, true);
    $output = curl_exec($c);
    if($output === false)
        trigger_error('Erreur curl : '.curl_error($c),E_USER_WARNING);
    else
        var_dump($output);
    curl_close($c);
}

call_url ("url_a_appeler_qu_on_trouve_dans_parametres_du_module_travaux_planifies");
?>

C’est peut être cette différence qui explique que pour certaines personnes appliquer les indications de ce fil de forum ne fonctionnait pas.