Php Laravel-调度大型任务

Php Laravel-调度大型任务,php,laravel,scheduled-tasks,Php,Laravel,Scheduled Tasks,尝试在Laravel中运行一个相当大的函数,从Google Places API获取大量数据,并将部分内容作为新条目存储在表中的数据库中。问题是,它会自动为我在当前条目附近发现新条目,从而创造更多的就业机会 当我通过GET访问命令时,它最终超时。我试着用Redis将其作为一个预定命令运行,但坦率地说,我似乎不知道它是如何工作的。我已经创建了一个作业,我尝试使用dispatch将其排队,但它现在尝试立即运行它,最终再次超时 如何在不暂停整个服务器的情况下运行此大型任务 谢谢 扎克 我非常简单,您

尝试在Laravel中运行一个相当大的函数,从Google Places API获取大量数据,并将部分内容作为新条目存储在表中的数据库中。问题是,它会自动为我在当前条目附近发现新条目,从而创造更多的就业机会

当我通过GET访问命令时,它最终超时。我试着用Redis将其作为一个预定命令运行,但坦率地说,我似乎不知道它是如何工作的。我已经创建了一个作业,我尝试使用dispatch将其排队,但它现在尝试立即运行它,最终再次超时

如何在不暂停整个服务器的情况下运行此大型任务

谢谢

  • 扎克

我非常简单,您不需要停止服务器。这只是权宜之计。使用Laravel时间表

使用调度程序时,只需将以下Cron条目添加到服务器

* * * * * php /path-to-your-project/artisan schedule:run >> /dev/null 2>&1
课堂示例:

namespace App\Console;

use DB;
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 = [
        //
    ];

    /**
     * Define the application's command schedule.
     *
     * @param  \Illuminate\Console\Scheduling\Schedule  $schedule
     * @return void
     */
    protected function schedule(Schedule $schedule)
    {
        $schedule->call(function () {
            DB::table('recent_users')->delete();
        })->daily();
    }
}
更多:


关于laravel日程安排的精彩视频:

我现在如何让它运行?我已经研究了调度器,坦率地说,我现在正在使用它,它并没有在这个视频中一步一步地运行,只是简单地解释了一下:是的,您只是设置了调度器任务,您不需要artisan命令:$schedule->call(函数(){DB::table('recent_users')->delete();}->daily();你处理好了吗?我在底部使用了你的解决方案,创建了一个新的artisan命令,谢谢!