1、复制\vendor\yiisoft\yii2\console\controllers\CacheController.php至\console\controllers\LuaGameTeamSkillController.php,如图1

2、将\console\controllers\LuaGameTeamSkillController.php重命名为\console\controllers\LuaGameTeamSkillController.php,如图2

3、命名空间修改为namespace console\controllers;,类名修改为LuaGameTeamSkillController,如图3

4、仅保留actionIndex(),其他方法删除,如图4

5、在Windows PowerShell中,进入程序根目录,运行 ./yii,,会给你一些可用的命令列表,其中增加了可用命令 lua-game-team-skill,如图5

6、使用退出代码是控制台应用程序开发的最佳做法。通常,执行成功的命令会返回 0(Controller::EXIT_CODE_NORMAL),执行失败返回1(Controller::EXIT_CODE_ERROR),如图6
const EXIT_CODE_NORMAL = 0;
const EXIT_CODE_ERROR = 1;

7、运行 ./yii lua-game-team-skill,成功运行,如果在执行过程中提供的路由不包含路由的方法ID,将执行默认操作,即actionIndex()方法,如图7

8、程序上传至CentOS 7上,在根目录下运行yii,报错-bash: yii: command not found,如图8

9、在根目录下运行 php yii,报错 PHP Warning ‘yii\base\ErrorException’ with message ‘exec() has been disabled for security reasons’,如图9

10、编辑php.ini文件,查找disable_functions,删除exec,保存,如图10

11,重启php-fpm,再次运行php yii,成功显示可用命令列表,lua-game-team-skill命令已经存在,如图11

12、运行 php yii lua-game-team-skill,如图12

13、运行命令成功后,在Redis中生成相应数据,如图13

14、使用CronTab定时执行php,执行命令,crontab -e,之后就会打开一个文件,如图14

15、在文件中添加如下内容,表示每分钟执行一次,保存,如图15
*/1 * * * * /usr/local/php/bin/php /data/wwwroot/api.kaiqiu.shuijingwanwq.com/yii lua-game-team-skill

16、使用linux flock 文件锁实现任务锁定,重新编辑,保存,如图16
*/1 * * * * flock -xn /tmp/sleep.lock -c ‘/usr/local/php/bin/php /data/wwwroot/api.kaiqiu.shuijingwanwq.com/yii lua-game-team-skill’

17、查看/tmp/目录,sleep.lock文件存在,如图17

18、使用linux flock 文件锁实现任务锁定,重新编辑,表示每10秒钟执行一次,保存,如图18
* * * * * flock -xn /tmp/sleep.lock -c ‘/usr/local/php/bin/php /data/wwwroot/api.kaiqiu.shuijingwanwq.com/yii lua-game-team-skill’
* * * * * sleep 10; flock -xn /tmp/sleep.lock -c ‘/usr/local/php/bin/php /data/wwwroot/api.kaiqiu.shuijingwanwq.com/yii lua-game-team-skill’
* * * * * sleep 20; flock -xn /tmp/sleep.lock -c ‘/usr/local/php/bin/php /data/wwwroot/api.kaiqiu.shuijingwanwq.com/yii lua-game-team-skill’
* * * * * sleep 30; flock -xn /tmp/sleep.lock -c ‘/usr/local/php/bin/php /data/wwwroot/api.kaiqiu.shuijingwanwq.com/yii lua-game-team-skill’
* * * * * sleep 40; flock -xn /tmp/sleep.lock -c ‘/usr/local/php/bin/php /data/wwwroot/api.kaiqiu.shuijingwanwq.com/yii lua-game-team-skill’
* * * * * sleep 50; flock -xn /tmp/sleep.lock -c ‘/usr/local/php/bin/php /data/wwwroot/api.kaiqiu.shuijingwanwq.com/yii lua-game-team-skill’

PHP / Laravel / Yii2 老项目维护与长期技术支持
如果你的 PHP / Laravel / Yii2 项目已经上线,但遇到原开发离职、Bug 长期无人修复、接口不稳定、性能下降、代码难以接手等问题,可以联系我做一次远程技术排查。
适合以下情况:
✅ 老旧 PHP 系统无人维护
✅ Laravel / Yii2 项目 Bug 修复
✅ 后台管理系统小功能迭代
✅ RESTful API 接口排查
✅ MySQL / Redis / Nginx 性能问题
✅ 长期远程兼职维护
可先从一次小问题开始:
✅ 线上报错排查
✅ 接口异常分析
✅ 慢查询与性能瓶颈定位
✅ 代码结构初步评估
✅ 部署环境与日志检查
如需咨询,请联系我,并注明:PHP 维护咨询。
联系方式:
Telegram:@shuijingwan
微信:13980074657
邮箱:shuijingwanwq@gmail.com

发表回复