首页 文章

laravel 4中的cron调度程序

提问于
浏览
1

我正在尝试为命令或控制器操作设置cron,但它似乎对我不起作用 . 请看下面我尝试过的内容

我一直在尝试按照您的说明设置调度程序,但没有结果 .

当我尝试: 1. /usr/local/bin/php /home/mysite/public_html/protected/app/start/artisan cron:run 它给出错误

Could not open input file: /home/mysite/public_html/protected/app/start/artisan

2. /usr/local/bin/php /home/mysite/public_html/protected/app/controllers/TestController.php

它给出了错误 Fatal error: Class 'BaseController' not found in

3. /usr/local/bin/php -q /home/mysite/public_html/protected/app/start/artisan cron:run

错误 - Could not open input file:

4. php /var/www/com/mysite.com/artisan cron:run
Status: 404 Not Found No input file specified.
  • / usr / local / bin / php home / opendesk / public_html / protected / app / start / artisan.php和artisan.php我喜欢Artisan :: add(new CronRunCommand);

错误致命错误:未找到“Artisan”类

  • / usr / local / bin / php /home/opendesk/public_html/protected/app/start/artisan.php在artisan.php中我将其更改为$ artisan-> add(new CronRunCommand);

错误致命错误:在非对象上调用成员函数add()

似乎没有任何效果 . 我已经阅读了很多SO和谷歌的帖子,但无法找到解决方案 . 希望能在这里得到一些帮助

1 回答

  • 0

    首先 . 任务调度在laravel 4中不可用,您需要使用最新版本 .

    第二个 . 什么路径 /home/mysite/public_html/protected/app/start/artisan ?你能展示应用文件夹结构吗?

    但是 artisan 其文件在默认安装的应用程序根文件夹中 . 对于样品 - 我的申请放在 \var\www\myaplication ,然后工匠放在 \var\www\myaplication\artisan . 我称之为 php \var\www\myaplication\artisan 或更好,将当前目录更改为 cd \var\www\myaplication 并运行 php artisan .

    在trith工匠cron无法准备控制器方法 . 您需要在文件 App\Console\Kernel 中创建一个cron任务

    <?php
    
    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 = [
            \App\Console\Commands\Inspire::class,
        ];
    
        /**
         * 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();
        }
    }
    

    有关详细信息,请阅读documenation这非常有用!

相关问题