我已经创建了一个laravel任务并添加到我的crontab文件
应用程序/控制台/Kernel.php
<?php
namespace AppConsole;
use Carbon;
use IlluminateConsoleSchedulingSchedule;
use IlluminateFoundationConsoleKernel as ConsoleKernel;
class Kernel extends ConsoleKernel
{
/**
* The Artisan commands provided by your application.
*
* @var array
*/
protected $commands = [
AppConsoleCommandsInspire::class,
];
/**
* Define the application's command schedule.
*
* @param IlluminateConsoleSchedulingSchedule $schedule
* @return void
*/
protected function schedule(Schedule $schedule)
{
$now = CarbonCarbon::now('America/New_York');
$dt = CarbonCarbon::parse($now);
$time_start = $dt->toTimeString();
$dt = str_replace('-','_',$dt);
$dt = str_replace(' ','_',$dt);
$dt = str_replace('/',':',$dt);
$schedule->exec('curl '.env('APP_URL').'fbwifi/acl_update')->everyMinute()
->sendOutputTo(public_path().'/tasks/log_'.$dt.'.txt');
}
}
crontab文件
* * * * * /usr/local/bin/php artisan schedule:run
* * * * * php artisan schedule:run
<标题> 结果
由于某些原因,我的crontab没有触发
5分钟后,我没有看到在我的public/tasks/
文件夹中生成任何内容。
我甚至试图把完整的路径到我的php
。
我错过什么了吗?如何调试它呢?
标题>在您的crontab中,您需要将路径设置为指向项目根目录中的artisan文件。
* * * * * php /path/to/project/artisan schedule:run
如果你找不到你的项目路由的绝对路径,那么打开终端,cd
进入你的项目的路由目录,然后使用pwd
命令,它会给你绝对目录。
例如:
$ cd MyUser/dev/project
$ pwd
将输出类似
的内容 /Users/MyUser/dev/project
那么您的cronjob将看起来像
* * * * * php /Users/MyUser/dev/project/artisan schedule:run
也尝试重新启动您的cron守护进程。我发现当事情不为我运行时,这很有帮助。