记录一个tp5命令行下的定时命令
来源:互联网 发布:vmware fusion 10 mac 编辑:程序博客网 时间:2024/06/15 01:28
前阵子有个需求是要做类似于定时发个推送消息的需求
最开始的打算是在项目之外的另一个专门写统计的项目里面写个action,专门查数据然后到发送时间就发送。这个就不多说了主要说下定时发送的问题,然后用linux的crontab命令定时执行那个脚本就ok了。之所以在统计的项目是因为。。业务的项目框架是tp5,我不会用在linux下直接跑- -。统计的项目经常有定时统计的需求,所以那边跑linux定时命令比较熟悉。但是后来技术bos说,统计的项目和业务项目要分开,所以就只好硬着头皮上了orz。
查了下tp5是又命令行模式的,但是相关资料实在太少了。。基本等于没有,继续头疼。
于是去tp5框架下的项目里建了个test,目录这样:.tp5项目的目录/application/admin/controller/test.php
文档给出的资料是这样的:
orz
完全没有任何提示作用啊!怎么跑嘛!
好。耐心,既然是命令行模式 直接试试跑统计脚本那样看行不行
统计脚本是这样跑的:
30 0 * * * php文件目录/php文件名称的基础类.php -c 要执行的php文件脚本 -f要执行的函数 product
那么试一下:
好的果然有bug。
咳咳说下 首先进入php的安装目录然后再执行的命令,马赛克掉的都是目录,毕竟是公司项目。和谐。
作为一个刚写代码没多久的萌新,本萌表示最喜欢的就是写代码一路顺畅没任何问题。。当然这不太可能。查bug每次都很痛苦,项目里还好,耐心的挨个输出调试就可以了。
但是。。命令行这种。。脑壳疼。其实我觉得这就是我作为一个萌新程序员不够优秀的原因。bug处理上,第一我不怎么会看bug日志,第二我不太会快速的定位问题,除非出错的代码本来就是我写的,如果是别人写的报bug了我来查。。就算一个简单的问题我也会查一个小时开外。。orz。第三就是我写代码的时候对有bug的可能处理不够。这些另外再说吧,先讨论脑壳疼的这个命令行问题。
好。耐心看bug提示,大不了去提示一步步跟。
错误提示no such file?
好的去看一下。果然没有- -。好吧 是框架里的tp包没更新。。更新下。
然后按照文档命令试一下。
创建模型文件
第一次是这样的php think model:Heko
。。然后。。创建到哪里去了?手动黑人问号脸??
找了半天后。。
- -好吧。再试下加上目录?
第二次:php think model:admin/Heko2
这次成功的创建在admin的controller目录下。
原来要加上指定的目录不然就创建在默认的里面了。
里面的adminbase是项目里的基类action
那么打开创建好的模型文件,随便输出个试试
好。见证奇迹的时刻!!
执行 php think admin/Heko2/index!。。提示没session??好吧 想起来了,在入口action里我有判断检查是否有登录的session,没有要跳转到登录界面。。
orz。没关系!肯定有命令行模式的开关!设置了然后判断下,不是命令行再判断session跳转就ok了!
设置完毕!继续!
好了!破费!
然后把要执行的代码copy进去,然后定时跑下crontab命令就ok了!
但是问题又来了。命令行下直接php /目录/public/index.php /admin/test/index 输出是没问题的
但是不会跑循环命令……
脑壳疼
打了输出日志看一下,定是命令根本就没有跑吗!!
灵机一动。去查一下crontab的日志!
执行:tail -f /var/log/cron*
Aug 26 06:33:01 stationmg CROND[8327]: (linux账号) CMD (php /目录/public/index.php /admin/test/index)
所以、。其实是执行了但是没成功?但是命令行直接执行有没问题。。。说明不是代码的问题!
问万能的度娘吧。
看了下大致是说crontab php /目录/public/index.php /admin/test/index这样执行的时候php无法解析。。?
我去看了吓之前的定时跑的php脚本
开头都是这样的
#php的目录
那是不是找不到php的安装目录?
试一下 反正错了又没损失!
*/3 * * * * /php安装目录/php /项目目录/public/index.php /admin/test/cycle
然后!见证奇迹的时刻!!
居然成功了!
破费!
事实充分证明,遇到问题查bug是个都么优秀的习惯。。新技能get!
- 记录一个tp5命令行下的定时命令
- TP5的命令新增模块
- 记录下window 命令行下设置IP地址命令
- 记录下window 命令行下设置IP地址命令
- spring的定时任务记录下
- linux下的crontab定时命令
- linux 下的crontab定时调度命令
- Ubunto下的crontab定时命令任务
- tp5使用mongodb的expireAfterSeconds做到定时删除功能
- mysql 在命令行下的取消命令
- svn 命令行下常用的几个命令
- oracle命令行下的导入导出命令
- svn 命令行下常用的几个命令
- svn 命令行下常用的几个命令 .
- svn 命令行下常用的几个命令
- 命令行cmd下获取路径的命令
- Windows 命令行下路由命令的详解
- MySQL在命令行下的使用命令
- 用.NET获取汉字的区位码
- NumPy Basics: Arrays and Vectorized Computation
- C++笔记(常用关键字new、delete、static、const、friend,operator+-,内存结构)
- 修改配置myeclipse/eclipse的注释作者名author
- Java基础学习总结(59)——30 个java编程技巧
- 记录一个tp5命令行下的定时命令
- 堆排序
- mysql.properties
- 操作系统-内存管理
- Android Studio使用api23“找不到org.apache.http..”
- 每天一条linux---head命令
- 使用xrandr和cvt命令添加自定义的分辨率模式
- 网页中嵌入多媒体文件
- C中结构体struct的用法