MICUU
微资讯
声卡
创新2024全套教程
5.1声卡全套
创新声卡驱动
板载声卡调试全套教程
Sam机架安装
Sam机架
音效助手
专题
文档
技术文档汇总
站内文档
更多
软件
更新日志
关于
装机必备
Gramos模板
光年后台模板
Betube模板
美图
友情链接
站内导航
关于
搜索
退出登录
登录
原创
利用命令行命令nohup实现类似消息队列的功能,查看进程
2021-12-20
98.9w热度
  很多时候,单单url访问形式执行某个控制器是不行的,比如大批量数据导出这种场景。那么怎么实现呢?这里简单给出一个思路。 | 新启动程序 | nohup ./test.sh >log 2>&1 & | setsid ./test.sh >log 2>&1 & | | ---------- | --------------------------- | ---------------------------- | | 已运行程序 | nohup -p PID | disown -h %n | ``` touch /var/log/csi/export.log && chmod 775 /var/log/csi/export.log 创建并修改文件所属 nohup php think export > /var/log/csi/export.log 2>&1 & 启动任务【项目目录下运行】 ps -aux|grep export 查看相关任务是否运行 export未关键字 ``` 框架:tp 环境:Linux 1:完成我们的命令行代码编写 这里主要实现了类似消费者的功能 ``` <?php namespace app\common\command; use think\console\Input; use think\console\Output; use think\facade\Env; class ExportCommand extends Command { private static $limit = 10000; protected function configure() { $this->setName('export') ->setDescription('导出工单信息'); } protected function execute(Input $input, Output $output) { $redis = Cache::store('redis')->handler(); $redis->setOption($redis::OPT_READ_TIMEOUT, -1); $redis->subscribe(['survey_members'], function($instance, $channelName, $message){ $this->exportSurveyMembers($instance, $channelName, $message); }); } /** * 导出工单信息操作 * @Date 2021-01-27 13:34:12 */ private function exportSurveyMembers($redisInstance, $channel, $message) { ini_set('memory_limit', '2048M'); do something //这里完成你的逻辑代码 } } ``` 2:发布任务 实现类似发布者 ``` do something //你的逻辑 $res = Cache::store('redis')->handler()->publish('survey_members', json_encode($param)); //发布任务 // 3.添加防止重复提交任务锁 $redis->setex($key, 60, 1); ``` 3:利用命令行不间断的执行我们的cli脚本 ``` 1.运行命令:touch /var/log/csi/export.log && chmod 775 /var/log/csi/export.log 2.项目目录下运行命令:nohup php think export > /var/log/csi/export.log 2>&1 & nohup 表示不间断的 touch 创建文件 ``` 完成以上步骤,我们就实现了一个不简单的场景来实现我们的导出或者是耗时一点的任务。上述代码不完整,基本就给出了主题逻辑,最主要的是步骤3中的2行代码,大家可以合理的利用起来。
注:原创不易,转载请注明出处(
https://micuu.com/new/2456.html
),本站所有资源来源于网络收集,如有侵权请联系QQ245557979进行清除。
最后修改与 2022-02-21
上一篇:
php-curl-class发送接送字符串请求
下一篇:
supervisor实现进程管理,进程自动重启
留言反馈
请先登录
问题反馈渠道,如有软件无法下载或者其他问题可反馈。【由于某种原因,目前留言不展示】
用户需要登录后才能留言反馈
立即留言
珍藏视频
10分钟高效燃脂
30天高效瘦脸操
5分钟缓解颈椎操
友人
微博
全民K歌
唱吧
今日头条
悠悠网
科技小锅盖
彼岸桌面
阮一峰
laravel社区
V2ex
掘金
更多>