首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Laravel没有运行作业

Laravel没有运行作业
EN

Stack Overflow用户
提问于 2016-12-16 20:24:40
回答 2查看 1.5K关注 0票数 0

我使用的是laravel 5.2,我的工作设置为:

代码语言:javascript
运行
复制
<?php

namespace App\Console;

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 = [
        \App\Console\Commands\FetchTweets::class,
        \App\Console\Commands\FetchTweetMentions::class,
        \App\Console\Commands\FetchTweetListsAddedToo::class,
        \App\Console\Commands\LogRotater::class,
        \App\Console\Commands\FetchReadMes::class,
        \App\Console\Commands\FetchEveMarketPrices::class,
        \App\Console\Commands\FetchEveRegions::class,
        \App\Console\Commands\FetchEveMarketGroupInformation::class,
        \App\Console\Commands\FetchEveMarketTypes::class,
        \App\Console\Commands\FetchEveOnlineRegionTypeHistoryInformation::class,
        \App\Console\Commands\CleanEveTables::class,
        \App\Console\Commands\PublishTweets::class,
        \App\Console\Commands\FetchTwitterBlocks::class,
        \App\Console\Commands\FetchTwitterFollowers::class
    ];

    /**
     * Define the application's command schedule.
     *
     * @param  \Illuminate\Console\Scheduling\Schedule  $schedule
     * @return void
     */
    protected function schedule(Schedule $schedule)
    {
        // ...

        $schedule->command('log_rotater')
            ->everyThirtyMinutes()
            ->withoutOverlapping()
            ->appendOutputTo('storage/logs/log_rotation.log');
    }
}

我已经把其他的工作评论掉了,因为我觉得如果我修复一个工作,它会修复所有的工作,或者我会有一个方法来解决所有的问题。从本质上说,这份工作从未运行过。

永远不会。

我怎么知道这个?它的日志文件应该是旋转的,当它们从来没有比meg大的时候,它们的大小会增长到远远超过几个任务。我以前每天都有这样的设置,但现在我把它改为每半小时一次。

它还是不能运行。

我可以通过执行php artisan log_rotator手动运行它,没有错误,它运行,它旋转日志寿命是巨大的。

但它似乎不想按计划运行。

的想法?

您是否创建了实际的cron作业来运行调度程序?

代码语言:javascript
运行
复制
# m h  dom mon dow   command
* * * * * php ~/personal_site/artisan schedule:run >> /dev/null 2>&1

这个命令有效吗?

这是其中一个产出的例子:

代码语言:javascript
运行
复制
xxx@ubuntu:~$ php ~/personal_site/artisan schedule:run
Running scheduled command: (touch /home/xxx/personal_site/storage/framework/schedule-1b9fbd28988b6ce27513da6dcf3d00eec059484c; '/usr/bin/php7.0' 'artisan' fetch_tweets; rm /home/xxx/personal_site/storage/framework/schedule-1b9fbd28988b6ce27513da6dcf3d00eec059484c) >> 'storage/logs/tweets.log' 2>&1 &

所以..。是的是的。

Help

更新二

以下内容应该能告诉你任何你需要知道的事情。

代码语言:javascript
运行
复制
xxx@ubuntu:~$ php /home/xxx/personal_site/artisan schedule:run >> /home/xxx/personal_site/storage/cron.log 2>&1
xxx@ubuntu:~$ cd personal_site/storage/
xxx@ubuntu:~/personal_site/storage$ cat cron.log 
Running scheduled command: (touch /home/xxx/personal_site/storage/framework/schedule-1b9fbd28988b6ce27513da6dcf3d00eec059484c; '/usr/bin/php7.0' 'artisan' fetch_tweets; rm /home/xxx/personal_site/storage/framework/schedule-1b9fbd28988b6ce27513da6dcf3d00eec059484c) >> 'storage/logs/tweets.log' 2>&1 &
Running scheduled command: (touch /home/xxx/personal_site/storage/framework/schedule-8f666afb45a162c3e7fcdd31c3b7334b7321f169; '/usr/bin/php7.0' 'artisan' fetch_twitter_blocks; rm /home/xxx/personal_site/storage/framework/schedule-8f666afb45a162c3e7fcdd31c3b7334b7321f169) >> 'storage/logs/tweet_block.log' 2>&1 &
Running scheduled command: (touch /home/xxx/personal_site/storage/framework/schedule-00cca655481aaf25de2c659589a2eb94feaf5775; '/usr/bin/php7.0' 'artisan' fetch_twitter_followers; rm /home/xxx/personal_site/storage/framework/schedule-00cca655481aaf25de2c659589a2eb94feaf5775) >> 'storage/logs/twitter_followers.log' 2>&1 &
Running scheduled command: (touch /home/xxx/personal_site/storage/framework/schedule-ee75cb261c4f273c31e1c7ce526ee8ad0b810907; '/usr/bin/php7.0' 'artisan' fetch_tweet_mentions; rm /home/xxx/personal_site/storage/framework/schedule-ee75cb261c4f273c31e1c7ce526ee8ad0b810907) >> 'storage/logs/tweet_mentions.log' 2>&1 &
Running scheduled command: (touch /home/xxx/personal_site/storage/framework/schedule-3b5a4c06df2d042fff061daba42e20e7e4ff43fc; '/usr/bin/php7.0' 'artisan' fetch_tweet_lists_added_too; rm /home/xxx/personal_site/storage/framework/schedule-3b5a4c06df2d042fff061daba42e20e7e4ff43fc) >> 'storage/logs/tweet_list.log' 2>&1 &
Running scheduled command: (touch /home/xxx/personal_site/storage/framework/schedule-1b9fbd28988b6ce27513da6dcf3d00eec059484c; '/usr/bin/php7.0' 'artisan' fetch_tweets; rm /home/xxx/personal_site/storage/framework/schedule-1b9fbd28988b6ce27513da6dcf3d00eec059484c) >> 'storage/logs/tweets.log' 2>&1 &
Running scheduled command: (touch /home/xxx/personal_site/storage/framework/schedule-8f666afb45a162c3e7fcdd31c3b7334b7321f169; '/usr/bin/php7.0' 'artisan' fetch_twitter_blocks; rm /home/xxx/personal_site/storage/framework/schedule-8f666afb45a162c3e7fcdd31c3b7334b7321f169) >> 'storage/logs/tweet_block.log' 2>&1 &
Running scheduled command: (touch /home/xxx/personal_site/storage/framework/schedule-00cca655481aaf25de2c659589a2eb94feaf5775; '/usr/bin/php7.0' 'artisan' fetch_twitter_followers; rm /home/xxx/personal_site/storage/framework/schedule-00cca655481aaf25de2c659589a2eb94feaf5775) >> 'storage/logs/twitter_followers.log' 2>&1 &
Running scheduled command: (touch /home/xxx/personal_site/storage/framework/schedule-ee75cb261c4f273c31e1c7ce526ee8ad0b810907; '/usr/bin/php7.0' 'artisan' fetch_tweet_mentions; rm /home/xxx/personal_site/storage/framework/schedule-ee75cb261c4f273c31e1c7ce526ee8ad0b810907) >> 'storage/logs/tweet_mentions.log' 2>&1 &
Running scheduled command: (touch /home/xxx/personal_site/storage/framework/schedule-3b5a4c06df2d042fff061daba42e20e7e4ff43fc; '/usr/bin/php7.0' 'artisan' fetch_tweet_lists_added_too; rm /home/xxx/personal_site/storage/framework/schedule-3b5a4c06df2d042fff061daba42e20e7e4ff43fc) >> 'storage/logs/tweet_list.log' 2>&1 &
Running scheduled command: (touch /home/xxx/personal_site/storage/framework/schedule-1357d5ceb1399278a39d91725089a0df39036ecc; '/usr/bin/php7.0' 'artisan' publish_tweets; rm /home/xxx/personal_site/storage/framework/schedule-1357d5ceb1399278a39d91725089a0df39036ecc) >> 'storage/logs/sent_tweets.log' 2>&1 &
Running scheduled command: (touch /home/xxx/personal_site/storage/framework/schedule-1b9fbd28988b6ce27513da6dcf3d00eec059484c; '/usr/bin/php7.0' 'artisan' fetch_tweets; rm /home/xxx/personal_site/storage/framework/schedule-1b9fbd28988b6ce27513da6dcf3d00eec059484c) >> 'storage/logs/tweets.log' 2>&1 &
Running scheduled command: (touch /home/xxx/personal_site/storage/framework/schedule-8f666afb45a162c3e7fcdd31c3b7334b7321f169; '/usr/bin/php7.0' 'artisan' fetch_twitter_blocks; rm /home/xxx/personal_site/storage/framework/schedule-8f666afb45a162c3e7fcdd31c3b7334b7321f169) >> 'storage/logs/tweet_block.log' 2>&1 &
Running scheduled command: (touch /home/xxx/personal_site/storage/framework/schedule-00cca655481aaf25de2c659589a2eb94feaf5775; '/usr/bin/php7.0' 'artisan' fetch_twitter_followers; rm /home/xxx/personal_site/storage/framework/schedule-00cca655481aaf25de2c659589a2eb94feaf5775) >> 'storage/logs/twitter_followers.log' 2>&1 &
Running scheduled command: (touch /home/xxx/personal_site/storage/framework/schedule-ee75cb261c4f273c31e1c7ce526ee8ad0b810907; '/usr/bin/php7.0' 'artisan' fetch_tweet_mentions; rm /home/xxx/personal_site/storage/framework/schedule-ee75cb261c4f273c31e1c7ce526ee8ad0b810907) >> 'storage/logs/tweet_mentions.log' 2>&1 &
Running scheduled command: (touch /home/xxx/personal_site/storage/framework/schedule-3b5a4c06df2d042fff061daba42e20e7e4ff43fc; '/usr/bin/php7.0' 'artisan' fetch_tweet_lists_added_too; rm /home/xxx/personal_site/storage/framework/schedule-3b5a4c06df2d042fff061daba42e20e7e4ff43fc) >> 'storage/logs/tweet_list.log' 2>&1 &
Running scheduled command: (touch /home/xxx/personal_site/storage/framework/schedule-1357d5ceb1399278a39d91725089a0df39036ecc; '/usr/bin/php7.0' 'artisan' publish_tweets; rm /home/xxx/personal_site/storage/framework/schedule-1357d5ceb1399278a39d91725089a0df39036ecc) >> 'storage/logs/sent_tweets.log' 2>&1 &
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-16 20:50:29

看看你的教学方法,我认为这是不正确的:

代码语言:javascript
运行
复制
$schedule->command('log_rotater')
   .....

您在这里提到了log_rotater;但是在\App\Console\Commands\LogRotater::class中,您$signature是什么样的呢?

command()的参数应该是一个手工命令;因此在\App\Console\Commands\LogRotater::class中的$signature中定义了

您提到您正在运行调度程序;但它只运行“FetchTweets”任务,而没有其他任何操作。

票数 1
EN

Stack Overflow用户

发布于 2016-12-16 20:49:29

我认为@tkausl在正确的轨道上:命令开头的"~“很可能没有指向您期望的根文件夹.

我首先删除stdout/stderr重定向,可能通过在cron文件的顶部添加以下内容发送给自己:

代码语言:javascript
运行
复制
MAILTO=me@company.com
MAILFROM=server@company.com

它应该允许您看到cron作业输出的任何错误消息..。

我猜,就像我说的,您的cron作业是以与您不同的用户运行(可能是根用户)吗?在这种情况下“个人站点/工匠”根本不存在.

或者,您也可以尝试直接使用绝对路径,看看这是否是问题所在.

希望这能有所帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41191951

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档