【问题标题】:Scheduler error on server but not on local host in Laravel服务器上的调度程序错误,但 Laravel 的本地主机上没有
【发布时间】:2019-11-27 17:34:40
【问题描述】:

我正在测试调度程序,为此,我在本地机器上测试了代码,它运行良好,但在实时服务中,我面临foreach loop 的以下错误


[2019-11-27 23:00:01] local.ERROR: Invalid argument supplied for foreach() {"exception":"[object] (ErrorException(code: 0): Invalid argument supplied for foreach() at /demon/x/public_html/vendor/symfony/console/Input/ArgvInput.php:261)
[stacktrace]
#0 /demon/x/public_html/vendor/symfony/console/Input/ArgvInput.php(261): Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError(2, 'Invalid argumen...', '/demon/x...', 261, Array)
#1 /demon/x/public_html/vendor/symfony/console/Application.php(983): Symfony\\Component\\Console\\Input\\ArgvInput->getFirstArgument()
#2 /demon/x/public_html/vendor/laravel/framework/src/Illuminate/Console/Application.php(81): Symfony\\Component\\Console\\Application->getCommandName(Object(Symfony\\Component\\Console\\Input\\ArgvInput))
#3 /demon/x/public_html/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(131): Illuminate\\Console\\Application->run(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#4 /demon/x/public_html/artisan(36): Illuminate\\Foundation\\Console\\Kernel->handle(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#5 {main}
"} 


我试图调用的函数如下,并且在辅助函数中:


   function sendNotificationToScheduleMessages() {
        // from current time 
        $from  = date('Y-m-d H:i:s', strtotime('now'));
        // to the time max
        $to = date('Y-m-d H:i:s', strtotime('+1 minutes', strtotime('now')));

        //get all pending notification between from and to date timestamp
        $notification = ScheduleMessage::whereBetween('trigger_at', [$from, $to])->whereStatusId(4)->get();
        if(count($notification) > 0){
            Log::info('Data fetched for notification #record - '.$notification->id);
        } else {
            Log::info('No Notification found form ('.$from.') - to ('.$to.')');
        }

    }

【问题讨论】:

    标签: laravel foreach runtime-error shared-hosting


    【解决方案1】:

    我过去也遇到过类似的问题。您还没有显示您的一些调度程序信息,但我能够通过修复我的 cron 指令来解决这个问题。因此,在您的实时服务器上,请确保您确实已将 Laravel 的调度程序添加到 cron

    类似这样的:

    /usr/local/bin/php register_argc_argv=1 artisan schedule:run >> /dev/null 2>&1
    

    这对我有用,但您可能需要在这个空间中玩耍以匹配您的开发机器和实时主机之间的功能。

    HTH

    【讨论】:

    • register_argc_argv=1 在我的情况下处于启用状态,因此与此无关,我在发布之前已经尝试过。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-17
    • 2014-07-19
    相关资源
    最近更新 更多