我可以在Linux Cron Job / Crontab上运行Laravel Route吗?

时间:2017-12-07 06:35:02

标签: php linux laravel cron

我有一条API路由来更新我的数据库,

这是我想通过cronjob执行的路由的结构,

 @extends ('layout')

    @section ('content')

        <script>
                /*--------------------------------------*/
                /* Start Get Employees Data and Update */
                /*------------------------------------*/
                getDataFs();

              function getDataFs()
              {
                    var _token = $("input[name='_token']").val();
                    $.ajax({
                        url: 'https:/api/', /* API Url of JSON Data from Hosts */
                        type: 'GET',
                        dataType: 'json',
                        xhrFields: {
                            withCredentials: true
                        },
                        success: function(response){  
                            console.log(response);
                            for(i=0; i < response.length; i++)
                            {
                                $.ajax({
                                    url: '/api/update_list',
                                    headers: {
                                        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                                    },
                                    type: 'POST',
                                    dataType: 'json',
                                    data: { 'employee_data': response[i], '_token': _token },
                                    success: function(response){
                                        console.log(response);
                                    }
                                })
                            }   
                        }
                    });
                }   
                /*--------------------------------------*/
                /* End Get Employees Data and Update   */
                /*------------------------------------*/
        </script>
    @endsection

在我的API路由中,我有一个从另一个api获取数据的ajax请求,

我知道可以使用sh脚本或perl脚本运行php,并在创建的cronjob上添加.sh.pl脚本,

我想知道的是,是否可以在linux上的shell script/perl script内运行laravel路由?

/ usr / bin / php myscript.php到/ usr / bin / php laravel / route

如果是这样,你能给我一个工作样本脚本,其中包含我的laravel路径的路径,

2 个答案:

答案 0 :(得分:1)

经过一个小时的研究,我能够通过一点一点的研究来解决我的问题,

这就是我所做的,

对于Laravel 5.4 - 在终端

中执行
  1. php artisan make:command CustomCommand --command=command:name

  2. 转到app/Console/Kernel.php

    找到日程安排功能 并在$schedule->command('command:name')->daily();

  3. 中添加
  4. 转到app/Console/Commands/CustomCommand.php

    添加'用户数据库;'并设置$ signature

    protected $ signature ='command:name';

    设置$ description ='这将更新员工';

    设置句柄

    公共功能句柄()

    {

    DB ::表( '用户') - 化合物其中( '编号', '25') - &GT;更新([ '电子邮件'=&GT;'sample@gmail.com']);

    $ this-&gt; info('成功更新数据!');

    }

  5. 转到终端

    转到projectdir

    运行'php artisan command:name'

  6. crontab -e

    设置分钟,小时,日,年,月php / path / to / project / artisan update:employee

    e.g。 * * * * * php / var / html / laravelproject / artisan命令:name

答案 1 :(得分:0)

如果尚未安装,请安装php-cli。 然后就像这样运行你的php脚本

* * * * * * php -f /path/to/php/script.php > /somewhere/log/output.txt

如果您不需要记录

* * * * * * php -f /path/to/php/script.php > /dev/null 2>&1

完成