Dzień dobry wszystkim,
Mam problem z odpaleniem zadań cyklicznych w Laravel. Już tłumaczę co mam i gdzie utknąłem.
Mam utworzoną nową klase cronEmail i nową komende notify:email
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use Mail;
// use Illuminate\Http\Request;
// use App\Http\Controllers\Controller;
class cronEmail extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'notify:email';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Send email to Administrator';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
error_log('Test wywolania zadania BATCHOWEGO');
}
}
Jest ona normalnie widoczna przez system:
Dodatkowo to ręcznym przetestowaniu działa bez problemu:
Następnie dodałem wywołanie tej komendy w Kernel.php:
<?php
namespace App\Console;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
class Kernel extends ConsoleKernel
{
/**
* The Artisan commands provided by your application.
*
* @var array
*/
protected $commands = [
'App\Console\Commands\cronEmail',
// Commands\cronEmail::class
];
/**
* Define the application's command schedule.
*
* @param \Illuminate\Console\Scheduling\Schedule $schedule
* @return void
*/
protected function schedule(Schedule $schedule)
{
//TEST
$schedule->command('notify:email')
->everyMinute();
}
/**
* Register the commands for the application.
*
* @return void
*/
protected function commands()
{
$this->load(__DIR__.'/Commands');
require base_path('routes/console.php');
}
}
Następnym krokiem jest odpalenie schedule, aby komenda zawarta w Kernel.php wykonywała się cyklicznie co minutę (akurat w tym teście).
Z dokumentacji laravel:
-
-
-
-
- php /path/to/artisan schedule:run 1>> /dev/null 2>&1
-
-
-
I właśnie tu pojawia się problem. Nie mogę wpisać poprawnej PathToArtisan
próbuję między innymi w ten sposób:
Ale tak jak widać z marnym skutkiem. Próbowałem bardzo wiele kombinacji - nie ma sensu żebym teraz je wypisywał.
Aczkolwiek, znalazłem w internecie że przy pomocy polecenia crontab -e powinienem dostać w odpowiedzi właśnie potrzebną mi PathToArtisan. Niestety konsola tego nie rozpoznaje.
Czy ktoś jest w stanie w jakiś sposób pomóc? Odnaleźć PathToArtisan? Albo może ktoś zna jakieś polecenie za pomocą którego można to znaleźć?
Paróbowałem również użyć env :
Ale z tym PATH jest chyba coś nie tak(za długi)? Chyba że powinienem wybrać część z niego? Próbowałem z całoscią ale nie działa.
Będę niezmiernie wdzięczny za pomoc!
Jeżeli mój post nie jest zgodny z normami na tym forum - proszę o wybaczenie - jest to mój pierwszy post :)
- screenshot-20180603113957.png (41 KB) - ściągnięć: 117
- screenshot-20180603112653.png (6 KB) - ściągnięć: 97
- screenshot-20180603113729.png (7 KB) - ściągnięć: 116
- screenshot-20180603113243.png (17 KB) - ściągnięć: 96
- screenshot-20180603112809.png (6 KB) - ściągnięć: 106