Laravel 5

schedule:work non fonctionnel sur ovh mutualisé

Avatar de ErwanROBERT-THOMASSON
ErwanROBERT-THOMASSON

Bonjour, j'essaie de faire fonctionner freescout qui utilise laravel 5 sur un ovh mutualisé et rencontre quelque problème avec le schedule. J'ai contacté le développeur mais le problème semble spécifique à mon installation et il n'a pas pus m'aider d'avantage du coup je viens vous voir au cas ou vous auriez des idées.

lorsque je lance artisan schedule:run manuellement il semble s’exécuter correctement, le schedule ne renvoie pas d'erreur, détecte les commande à lancer et le fait au bon moment :

artisan schedule:run
Running scheduled command: '/usr/local/php7.4/bin/php' 'artisan' freescout:fetch-monitor > '/dev/null' 2>&1
Running scheduled command: '/usr/local/php7.4/bin/php' 'artisan' freescout:check-conv-viewers > '/dev/null' 2>&1
Running scheduled command: '/usr/local/php7.4/bin/php' 'artisan' freescout:fetch-emails > '/home/paulanth/www/freescout/storage/logs/fetch-emails.log' 2>&1
Running scheduled command: '/usr/local/php7.4/bin/php' 'artisan' queue:work --queue='emails,default,b99bd41c908ceea83eb7e06ec1f9c3aa' --sleep=5 --tries=1 > '/home/paulanth/www/freescout/storage/logs/queue-jobs.log' 2>&1

Mais aucune des commandes du kernel comme celles citées au dessus ne sont vraiment exécutées et aucun log générés, ni dans fetch-emails.log / queue-jobs.log ni du côté de laravel et "artisan queue:failed" renvoie "No failed jobs!"

d'un autre côté, exécuter les commandes en question(artisan freescout:fetch-emails, artisan freescout:fetch-emails, etc....) manuellement fonctionne correctement et le log est généré.

j'ai trouvé ce sujet qui date de 7 ans : https://laracasts.com/discuss/channels/laravel/schedulerun-not-calling-artisan-command le problème est identique mais aucune vrai solution. j'ai essayé d'enlever ->withoutOverlapping() mais sans succes.

Le kernel Laravel Framework 5.5.40

bref le problème ne semble pas venir des commandes appelées ni du kernel? et ne sachant quel autre log consulter pour comprendre je bute un peu. si vous avez des idées? erwan

Posté il y a 1 mois
Avatar de ErwanROBERT-THOMASSON
ErwanROBERT-THOMASSON

voici un test qui illustre le probleme

--

Si j'ajoute cette ligne au kernel puis lance schedule:run

		$schedule->call(function () {
			$myfile = fopen(storage_path() . "/testfile.txt", "a");
			$txt = date("Y-m-d h:i:sa") . "\n";
			fwrite($myfile, $txt);
			fclose($myfile);
        })	->everyMinute()
			->sendOutputTo(storage_path().'/logs/custom-test.log');

la date est écrite dans /testfile.txt mais aucun logs n'est crée

--

en revanche si j'en fais une commande kernel:

$schedule->command('testcommand')
            ->everyMinute()
            ->sendOutputTo(storage_path().'/logs/testcommand.log');

testcommand.php file:

<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
class testcommand extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'testcommand';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = 'just a test';

    /**
     * Create a new command instance.
     *
     * @return void
     */
    public function __construct()
    {
        parent::__construct();
    }

    /**
     * Execute the console command.
     *
     * @return mixed
     */
    public function handle()
    {
			$myfile = fopen(storage_path() . "/testfile.txt", "a");
			$txt = date("Y-m-d h:i:sa") . "\n";
			fwrite($myfile, $txt);
			fclose($myfile);
    }
}

j'obtiens : Running scheduled command: '/usr/local/php7.4/bin/php' 'artisan' testcommand > '/home/paulanth/www/freescout/storage/logs/testcommand.log' 2>&1 mais rien n'est écris dans testfile.txt et aucun log n'est crée.

Posté il y a 1 mois

Vous ne pouvez pas répondre à ce sujet.