Laravel-4 cron工作

 伊人怀想 发布于 2023-02-07 11:07

我需要学习如何使用Laravel中的cron作业.我可以看到文档没有指定这部分.我找到了一个教程,但它是关于Laravel-3的.你可以给我一些关于如何安排每天运行一次cron工作的建议吗?吗?有没有关于这个问题的教程?

到目前为止,我的代码如下:

JobDaemon.php:

info('fired');
    }

    /**
     * Get the console command arguments.
     *
     * @return array
     */
    protected function getArguments()
    {
        return array(
            //array('example', InputArgument::REQUIRED, 'An example argument.'),
        );
    }

    /**
     * Get the console command options.
     *
     * @return array
     */
    protected function getOptions()
    {
        return array(
            //array('example', null, InputOption::VALUE_OPTIONAL, 'An example option.', null),
        );
    }

}

我使用以下命令进行设置

php artisan command:make JobDaemon

我的工匠文件如下:



我从我的控制台得到以下内容......

johnnemo@johnnemo:/opt/lampp/htdocs/e-support-uop$ tail -f /var/log/syslog | grep -i cron
Jan  1 18:31:09 johnnemo crontab[4484]: (johnnemo) REPLACE (johnnemo)
Jan  1 18:31:09 johnnemo crontab[4484]: (johnnemo) END EDIT (johnnemo)
Jan  1 18:35:01 johnnemo CRON[5054]: (johnnemo) CMD (php /opt/lampp/htdocs/e-support-uop/artisan job-daemon)
Jan  1 18:35:02 johnnemo CRON[5053]: (CRON) info (No MTA installed, discarding output)
Jan  1 18:39:01 johnnemo CRON[5064]: (root) CMD (  [ -x /usr/lib/php5/maxlifetime ] && [ -x /usr/lib/php5/sessionclean ] && [ -d /var/lib/php5 ] && /usr/lib/php5/sessionclean /var/lib/php5 $(/usr/lib/php5/maxlifetime))
Jan  1 18:40:01 johnnemo CRON[5076]: (johnnemo) CMD (php /opt/lampp/htdocs/e-support-uop/artisan job-daemon)
Jan  1 18:40:01 johnnemo CRON[5075]: (CRON) info (No MTA installed, discarding output)

Antonio Carl.. 21

首先,您需要确保新命令已启动,因此如果您运行

php artisan list

'job-daemon'必须在命令列表中

然后你测试它:

php artisan job-daemon

它有用吗?很酷,现在你可以设置自己的编辑器:

export EDITOR=nano

用它打开crontab:

[sudo] crontab -e

执行类型到php的正确路径:

type php

你应该得到类似的东西

php is hashed (/opt/lampp/bin/php)

所以你的php可执行文件是

/opt/lampp/bin/php

这将打开并编辑当前的cron作业,sudo是可选的打开root crontab,只需添加一行与你的:

25 10 * * * /opt/lampp/bin/php /whatever/directory/your/site/is/artisan job-daemon

这将在每天上午10:25运行您的命令.

要每隔5分钟执行一次

*/5 * * * * /opt/lampp/bin/php /whatever/directory/your/site/is/artisan job-daemon

然后你tail在syslog上看它运行:

tail -f /var/log/syslog | grep -i cron

你应该看到类似的东西

Jan  1 10:25:01 server CRON[19451]: (root) CMD (php /var/www//artisan job-daemon)

在你的命令中你不能真正在屏幕上打印东西,你不会看到它们打印,所以要测试你必须,例如,保存一些文件:

public function fire()
{
    File::append('/tmp/laravel.txt', "fired\n");
    Log::info('fired');
}

然后

tail -f /tmp/laravel.txt

实时查看结果.

1 个回答
  • 首先,您需要确保新命令已启动,因此如果您运行

    php artisan list
    

    'job-daemon'必须在命令列表中

    然后你测试它:

    php artisan job-daemon
    

    它有用吗?很酷,现在你可以设置自己的编辑器:

    export EDITOR=nano
    

    用它打开crontab:

    [sudo] crontab -e
    

    执行类型到php的正确路径:

    type php
    

    你应该得到类似的东西

    php is hashed (/opt/lampp/bin/php)
    

    所以你的php可执行文件是

    /opt/lampp/bin/php
    

    这将打开并编辑当前的cron作业,sudo是可选的打开root crontab,只需添加一行与你的:

    25 10 * * * /opt/lampp/bin/php /whatever/directory/your/site/is/artisan job-daemon
    

    这将在每天上午10:25运行您的命令.

    要每隔5分钟执行一次

    */5 * * * * /opt/lampp/bin/php /whatever/directory/your/site/is/artisan job-daemon
    

    然后你tail在syslog上看它运行:

    tail -f /var/log/syslog | grep -i cron
    

    你应该看到类似的东西

    Jan  1 10:25:01 server CRON[19451]: (root) CMD (php /var/www/<siteName>/artisan job-daemon)
    

    在你的命令中你不能真正在屏幕上打印东西,你不会看到它们打印,所以要测试你必须,例如,保存一些文件:

    public function fire()
    {
        File::append('/tmp/laravel.txt', "fired\n");
        Log::info('fired');
    }
    

    然后

    tail -f /tmp/laravel.txt
    

    实时查看结果.

    2023-02-07 11:11 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有