【问题标题】:Task Scheduler Laravel 5.4 cron not automatically running Mac OSx任务计划程序 Laravel 5.4 cron 不会自动运行 Mac OSx
【发布时间】:2018-05-07 06:22:57
【问题描述】:

我会直接切入。我的任务计划程序没有通过 cron 作业自动运行,只有在我运行时才有效:

php artisan schedule:run

我在handle() 函数中所做的只是:

\Log::info('scheduler running @' . \Carbon\Carbon::now() );

这运行完美并在命令运行时记录下来,所以我知道我的 artisan 命令没有任何问题,但 cron 作业本身或我的本地主机配置中的某些东西。

我已经为crontab 条目尝试了两种方法。

* * * * * php Sites/projectname/artisan schedule:run >> /dev/null 2>&1

* * * * * cd Sites/projectname; php artisan schedule:run >> /dev/null 2>&1

两者都不起作用,我应该每分钟获取一个日志,就像在 schedule() 函数中的 app/Kernel.php 一样,我有这个代码。 $schedule->command('send:email')->everyMinute();

我尝试使用php artisan cache:clear 清除 Laravel 缓存

任何英雄都可以拯救这一天吗?

谢谢

【问题讨论】:

  • 使用 php -q 代替 php 并告诉我是否有效
  • @MortaddaJafar 这是邮件文件中的输出。 PHP Parse error: parse error, expecting &' or variable (T_VARIABLE) /vendor/laravel/framework/src/Illuminate/Foundation/helpers.php on line 444
  • 这是因为您使用的 PHP 版本不支持 splat 运算符..
  • 运行which php并将输出复制到您的推荐,例如您的输出/usr/local/bin/php玉米作业推荐将是:` ... /usr/local/bin/php -q ...`
  • @MortaddaJafar 绝对英雄,完美运行。

标签: macos laravel laravel-5 cron laravel-5.4


【解决方案1】:

已解决

@MortaddaJafar 为我整理了问题,因此功劳归于他。

基本上,我的 Laravel php 版本是 5.6.4,而我的 apache php 服务器版本是 5.6.30,所以这样做会导致兼容性问题,因为我的 PHP 版本不支持 splat 运算符。将-q 放入我的cron php -q 允许我调试问题,因为错误消息被发送到/var/mail/nick。

要解决这个问题,只需将直接路径应用到您的 php 版本来运行 cron,这样可以避免版本问题。运行 which php 获取路径,然后将其添加到您的 cron 中。

* * * * * cd Sites/projectname; /usr/local/bin/php -q artisan schedule:run >> /dev/null 2>&1

希望这对面临类似问题的人有所帮助。

尼克。

【讨论】:

    猜你喜欢
    • 2019-05-29
    • 2016-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-16
    • 2017-06-11
    • 1970-01-01
    相关资源
    最近更新 更多