Hello :)
Alors aucun soucis pour faire une tache CRON
Si tu es sur du PHP pur, faut faire un serveur NodeJs et une route api dans ton projet
Déjà faut faire un fichier server.js à la racine du projet, ensuite tu dois installer le package node-cron, et tu peux l'utiliser en faisant
cron.schedule('* * * * *', function() { // les * * * * * c'est le cron
fetch("l'url de l'api de ton projet PHP à déclencher", {
headers: {
"Content-Type": "application/json", // on fait simple, tu va envoyer du json à ta route PHP
"Authorization": `Bearer ${process.env.access_token}`, // Protèges ta route !!! Sinon DDOS :)
},
method: "post",
body: Json.stringify({
/* Si tu veux donner des données à ta route PHP */
})
}).then(response => response.json())
.then(json_response => /* Ici tu as les données que te retourne ton controller PHP, depuis PHP renvoie un status "ok" pour dire que c'est bon, ou un statut "erreur" avec le message de l'erreur PHP pour programmer une notification, si tu as déjà un monitoring coté PHP pas besoin de mettre ça */)
})
Si tu veux juste un déclencheur sans passer de données, tu peux faire un fetch sans body en get
cron.schedule('* * * * *', function() {
fetch("l'url de l'api de ton projet PHP à déclencher", {
headers: {
"Authorization": `Bearer ${process.env.access_token}`, // Protèges ta route !!! Sinon DDOS :)
},
}).then(response => response.json())
.then(json_response => {
if {json_response.error) {
/* envoies toi un mail d'erreur, ou un call dans un dashboard, perso j'utilise AWS SNS et Cloudwatch ici */
}
})
})
Dans ton hébergeur cloud, tu a juste à lancer la commande node server.js et tu laisses tourner comme ça :p
Si tu utilises un framework, alors Symfony je sais pas faut voir la doc, Laravel tu lances dans ton serveur php artisan schedule:run et tu laisses tourner :p
Et en gros voila, pour ce qui est du code c'est théorique, adaptes le à tes besoins