laravel 解决crontab不执行的问题
最近在写laravel的时候遇到一个定时器的问题
手动的执行 php /usr/share/nginx/html/mylaravel/artisan schedul:run 可以生效
但是写在定时器中却不执行 * * * * * php /usr/share/nginx/html/mylaravel/artisan schedul:run
先看下代码
/app/Console/Commands/test.php
1.设置 $signature 属性
protected $signature = 'test:change';
2.handle 函数
public function handle() { //测试 写入文件 路径使用绝对路径 $handle = fopen("/usr/share/nginx/html/mylaravel/public/xiazai/1.txt","a+"); fwrite($handle,"test<br/>"); fclose($handle); }
/app/Console/Commands/Kernel.php
1. 设置$commands属性
protected $commands = [ test::class, ];
2.schedule函数
protected function schedule(Schedule $schedule) { $schedule->command("test:change")->everyMinute(); }
原因:php的路径并不识别 或者说 crontab 中使用的php的可执行文件 和在脚本中执行的php文件不一样
执行 whereis php
可以发现 当前有不只一个的php执行文件 发现自己在使用的php路径之后 修改 crontab中的配置
crontab -e
* * * * * /usr/local/php7/bin/php /usr/share/nginx/html/mylaravel/artisan schedul:run
解决!
以上这篇laravel 解决crontab不执行的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
laravel 出现command not found问题的解决方案
今天开始学习laravel,laravel用composer 安装,在终端输入laravel new blog(project name)得时候,出现了以下问题laravel: command not found</span> 查看技术文档这么Make sure to place the ~/.composer/vendor/bin directory in your PATH so the laravel executable can be located by your system. 应
-
Laravel使用消息队列需要注意的一些问题
前言 消息队列对于大型的Web项目来说是必不可少的一个模块,通过消息队列可以解决大并发和多种语言通信接口等问题.对于大并发的问题,可以将耗时的任务或者不能同时大量并行的任务封装起来传输到消息队列中,由处理程序不断从消息队列中提取消息并进行处理,这样通过消息队列的缓冲可以使得在大并发情况下不再阻塞,如果性能不够用还可以添加多个处理任务从消息队列中获取消息进行处理.比如数据库的操作,当对数据库的读.写操作过多时就会存在锁表等问题,读的问题可以通过缓存等方案解决,写的问题就需要消息队列来解决.而且,在
-
laravel 解决crontab不执行的问题
最近在写laravel的时候遇到一个定时器的问题 手动的执行 php /usr/share/nginx/html/mylaravel/artisan schedul:run 可以生效 但是写在定时器中却不执行 * * * * * php /usr/share/nginx/html/mylaravel/artisan schedul:run 先看下代码 /app/Console/Commands/test.php 1.设置 $signature 属性 protected $signature =
-
crontab无法执行php的解决方法
本文分析了crontab无法执行php的解决方法.分享给大家供大家参考,具体如下: 用crontab跑php程序时,如何去调试,各人有各人的方法.我也有套方法,看一下,我是如何解决crontab执行不了php程序这个问题的. 一.php文件有没有执行权限 复制代码 代码如下: [root@linux cron]# ls -al |grep del -rwxr-xr-x 1 zwh ftpgroup 494 10-20 16:42 del_redis.php 如果没有X,说明没有执行权限,
-
php解决crontab定时任务不能写入文件问题的方法分析
本文实例讲述了php解决crontab定时任务不能写入文件问题的方法.分享给大家供大家参考,具体如下: 今天使用crontab写的定时任务没有执行,很纳闷. crontab.php <?php error_reporting(0); $time = date("Y-m-d h:i:s",time()); file_put_contents($dir."/crontab.txt","[$time]\n",FILE_APPEND); cront
-
laravel解决迁移文件一次删除创建字段报错的问题
需求:通过写迁移文件更新user表中 topic 字段类型,从原来的varchar到json. 因为无法直接修改成json数据类型,只能采用先删除在创建的方式. 迁移文件代码如下: <?php use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; class CreateUserTable extends Migration{ /** * 运行迁移 * * @return v
-
springboot schedule 解决定时任务不执行的问题
@schedule 注解 是springboot 常用的定时任务注解,使用起来简单方便,但是如果定时任务非常多,或者有的任务很耗时,会影响到其他定时任务的执行,因为schedule 默认是单线程的,一个任务在执行时,其他任务是不能执行的.解决办法是重新配置schedule,改为多线程执行.只需要增加下面的配置类就可以了. import org.springframework.boot.autoconfigure.batch.BatchProperties; import org.springfr
-
laravel实现查询最后执行的一条sql语句的方法
代码: DB::connection()->enableQueryLog(); $query = DB::table('test')->orderBy('id', 'desc')->get();//需要执行的SQL语句 echo '<pre>'; print_r(DB::getQueryLog()); 执行结果为: Array ( [0] => Array ( [query] => select count(*) as aggregate from `sj_rea
-
laravel 解决路由除了根目录其他都404的问题
环境:ubuntu14.04 apache2 php5.6 laravel5.5 ip/yourprojectname/public 可以正常访问 而ip/yourprojectname/public/api/youractionname 显示404 apache的rewrite模块已经启用 怀疑是public下面的.htaccess不起作用 打开/etc/apache2/apache2.conf修改成如下(None改成All) OK! 问题解决! 以上这篇laravel 解决路由除了根目录其他
-
Linux下的crontab定时执行任务命令详解
在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron].cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间. cron的配置文件称为"crontab",是"cron table"的简写. 一.cron服务 cron是一个linux下 的定时执行工具,可以在无需人工干预的情况下运行作业. service crond start //启动服务 service crond stop //
-
laravel 解决ajax异步提交数据,并还回填充表格的问题
小白一个,经过一晚百度,暂时想出来的方法 我就直接图片了 不喜勿喷, 首先我用bootstraptable 简单创建一个表格 ajax 用post提交数据 创建路由和控制器 路由: 路由里面我加前缀和中间件,也可以不加,这laravel的基础,我就不说了(本人很懒) 控制器: 附图:提交的数据表单 每点击一下按钮,就添加一行 以上这篇laravel 解决ajax异步提交数据,并还回填充表格的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.
-
Laravel 解决419错误 -ajax请求错误的问题(CSRF验证)
程序内容相关:Laravel+ajax+CSRF 好吧还有好多能扯出来好像有点多而且微不足道得像面前鼠标垫上的纤维不重要所以就不扯了啊我废话好多 贴上自己的解决办法,两行内容 1.在页面上添加 <meta name="csrf-token" content="{{ csrf_token() }}"> 2.然后在页面的script标签{{– 这句是废话,但是,啊我的博客好短不想删 – }}中添加 $.ajaxSetup({headers: {'X-CSRF
随机推荐
- 详解SQL Server数据库架构和对象、定义数据完整性
- Python3读取zip文件信息的方法
- JS实现搜索框文字可删除功能
- JavaScript程序员应该知道的45个实用技巧
- asp实现防止从外部提交数据的三种方法第1/3页
- PHP实现HTTP断点续传的方法
- shell中使用echo打印彩色字体和彩色背景的方法
- android获取情景模式和铃声 实现震动、铃声提醒
- js网页中的(运行代码)功能实现思路
- jQuery得到多个值只能用取Class ,不能用取ID的方法
- PHP flush()与ob_flush()的区别详解
- 详解spring mvc(注解)上传文件的简单例子
- 新浪新闻小偷
- PHP+Ajax实现的无刷新分页功能详解【附demo源码下载】
- 如何从UA分辨出Android设备类型
- Android实现计时与倒计时的常用方法小结
- python如何通过实例方法名字调用方法
- Koa2微信公众号开发之消息管理
- Python 获取ftp服务器文件时间的方法
- python画图把时间作为横坐标的方法