Laravel cron工作没有运行

时间:2017-06-13 13:29:10

标签: php laravel laravel-5 cron

这是我第一次设置Cron作业,我无法自动安排命令。

所以我有一个命令:

public function handle()
{
    $client = new Client();
    $crawler = $client->request('GET', 'http://www.oldham-chronicle.co.uk/news-features');
    $crawler->filter('div[id=content]>.homefeature')->each(function ($node, $key) {
        $title = $node->filter('.plain')->text();
        $datepublished = $node->filter('.dateonline')->text();
        $description = $node->filter('.teaser-link')->text();
        $link = $node->filter('a')->link();
        $link_r = $link->getUri();
        $image = $node->filter('img')->image();
        $image_s = $image->getUri();
        $filename = basename($image_s);
        $image_path = ('news-gallery/' . $filename);
        Image::make($image_s)->save(public_path('news-gallery/' . $filename));
        $id = 1+ $key + 1;
        $news = News::where('id', $id)->first();
        // if news is null
        if (!$news) {
            $news = new News();
        }
        $news->title = $title;
        $news->datepublished = $datepublished;
        $news->description = $description;
        $news->link = $link_r;
        $news->image = $image_path;
        $news->save();
    });

    $crawler->filter('div[id=content]>.teaser-50')->each(function ($node, $key) {
        $title = $node->filter('.plain')->text();
        $datepublished = $node->filter('.dateonline')->text();
        $description = $node->filter('.teaser-link')->text();
        $link = $node->filter('a')->link();
        $link_r = $link->getUri();
        $image = $node->filter('img')->image();
        $image_s = $image->getUri();
        $filename = basename($image_s);
        $image_path = ('news-gallery/' . $filename);
        Image::make($image_s)->save(public_path('news-gallery/' . $filename));
        $id = 1+ $key + 1;
        $news = News::where('id', $id)->first();
        // if news is null
        if (!$news) {
            $news = new News();
        }
        $news->title = $title;
        $news->datepublished = $datepublished;
        $news->description = $description;
        $news->link = $link_r;
        $news->image = $image_path;
        $news->save();
        $this->info('Scraping done succesfully');
    });
}

内核文件:

protected $commands = [
    'App\Console\Commands\NewsScrape'
];

/**
 * Define the application's command schedule.
 *
 * @param  \Illuminate\Console\Scheduling\Schedule  $schedule
 * @return void
 */
protected function schedule(Schedule $schedule)
{
    $schedule->command('scrape:news')
             ->everyMinutes();
             ->emailOutputTo('some@email);
}

我可以手动运行它作为php artisan scrape:news并且它可以工作,但是当我将它添加到crontab -e:

* * * * * php /var/www/fyproject/ schedule:run >> /dev/null 2>&1

Cronjob从不运行,任何帮助!

1 个答案:

答案 0 :(得分:2)

需要通过artisan调用该命令,因此您必须记住在调用中添加它:

使用:

crontab -e * * * * * php /var/www/fyproject/artisan schedule:run >> /dev/null 2>&1