我有一条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路径的路径,
答案 0 :(得分:1)
经过一个小时的研究,我能够通过一点一点的研究来解决我的问题,
这就是我所做的,
对于Laravel 5.4 - 在终端
中执行 php artisan make:command CustomCommand --command=command:name
转到app/Console/Kernel.php
找到日程安排功能
并在$schedule->command('command:name')->daily();
转到app/Console/Commands/CustomCommand.php
添加'用户数据库;'并设置$ signature
protected $ signature ='command:name';
设置$ description ='这将更新员工';
设置句柄
公共功能句柄()
{
DB ::表( '用户') - 化合物其中( '编号', '25') - &GT;更新([ '电子邮件'=&GT;'sample@gmail.com']);
$ this-&gt; info('成功更新数据!');
}
转到终端
转到projectdir
运行'php artisan command:name'
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
完成