• 基于 Yii 2.0 高级模版的控制台命令实现定时任务的流程


    、复制vendoryiisoftyii2consolecontrollersCacheController.php至consolecontrollersLuaGameTeamSkillController.php,如图1

    复制vendoryiisoftyii2consolecontrollersCacheController.php至consolecontrollersLuaGameTeamSkillController.php

    图1

    2、将consolecontrollersLuaGameTeamSkillController.php重命名为consolecontrollersLuaGameTeamSkillController.php,如图2

    将consolecontrollersLuaGameTeamSkillController.php重命名为consolecontrollersLuaGameTeamSkillController.php

    图2

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

    命名空间修改为namespace consolecontrollers;,类名修改为LuaGameTeamSkillController

    图3

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

    仅保留actionIndex(),其他方法删除

    图4

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

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

    图6

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

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

    图7

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

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

    图8

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

    在根目录下运行 php yii,报错 PHP Warning 'yiiaseErrorException' with message 'exec() has been disabled for security reasons'

    图9

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

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

    图10

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

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

    图11

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

    运行 php yii lua-game-team-skill

    图12

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

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

    图13

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

    在文件中添加如下内容,表示每分钟执行一次,保存

    图15

    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’

    使用linux flock 文件锁实现任务锁定,重新编辑,保存

    图16

    17、查看/tmp/目录,sleep.lock文件存在,如图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’

    使用linux flock 文件锁实现任务锁定,重新编辑,表示每10秒钟执行一次,保存

    图18

  • 相关阅读:
    安卓清理缓存怎么做(未完)
    【转】来讨论下 Android 面试该问什么?
    解决app安装成功后,直接点击“打开”再按home返回,再次打开app会重新启动的问题
    Android切换横竖屏不销毁前台Activity,也不影响后台Activity
    Android布局:宽度适应的横向跟随,防止挤掉重要视图
    Android上的Badge,快速实现给应用添加角标
    博客上传图片存储解决
    ViewComponent组件在框架中使用
    Git日常使用命令
    js中的preventDefault与stopPropagation详解
  • 原文地址:https://www.cnblogs.com/iceman-/p/8898167.html
Copyright © 2020-2023  润新知