·设为首页收藏本站📧邮箱修改🎁免费下载专区🔐设置/修改密码👽群雄群聊
返回列表 发布新帖

DISCUZX3/X25论坛云上报/计划任务异步机制方案1.0.2beta[7.22日...

173 0
发表于 2022-4-20 15:32:47 | 显示全部楼层 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
DISCUZX3/X25论坛云上报/计划任务异步机制方案1.0.2beta[7.22日更新]


7.22日更新
1,优化超时问题
2,修正一个Exception错误


很多站长开启了防水墙等功能,在每次发帖的时候都会同步请求云端,这样当网络不畅的时候很容易导致“卡顿”的情况出现影响用户体验。

同理,论坛的计划任务也是把论坛后台的各种任务附加到用户的访问动作上,给用户造成论坛突然很卡了的假象。
于是,我们开发了这个论坛的异步机制来处理这个问题。


什么是异步?:
DISCUZX3/X25论坛云上报/计划任务异步机制方案1.0.2beta[7.22日... 论坛,上报,计划,任务,异步机
在执行过程中,我们把那些会造成卡的部分分离出来,放到后台来执行。

方案原理:
我们借助redis的队列机制的BLPOP方法,在一个死循环中等待队列中的可弹出的元素,否则就阻塞连接。
在后台处理前台提交过来的上报任务。

方案前提:
1,独立服务器,能执行命令行,并且安装了redis服务以及php-redis扩展。
2,服务器能执行计划任务。

实施步骤:
1,到 https://www.dismall.com/thread-12045-1-1.html 按提示安装框架。如果已经安装好可跳过此步。
2,关闭论坛,此过程大约需要5~15分钟。
3,确保论坛已经安装好redis以及php-redis扩展,如果没有安装可以参考帖子下方的方法。
4,下载帖子中的附件,并上传到服务器(不会覆盖任何文件)
5,切换到extend/bin目录,执行如下命令:
  1. ~$nohup php bin_async_cron.php&
复制代码
6,在配置文件的最下方加入如下配置:
  1. $_config['extend']['asynctask']['on'] = 1;
复制代码
在配置文件中找到如下两项按如下配置:
  1. $_config['remote']['on'] = '1';$_config['remote']['cron'] = '1';
复制代码
7,执行命令:
  1. ~$crontab -e
复制代码
添加如下代码到最后一行
  1. * * * * * curl "http://你的站/api/remote/index.php?mod=cron"
复制代码
8,可以到bin目录下查看out文件,里面记录了云上报日志,如果发现里面的剩余成员数一直在增加可以再次执行步骤5,新增一个进程来执行。

注意事项:
1,为了避免重启后任务丢失,建议把步骤5添加到开机启动里。
2,由于linux计划任务最多每分钟执行一次,所以论坛的任务执行可能有所延后而不是准点执行,比如今日发帖的任务可能就不是准点更新而是延后了几分钟。
3,请限制extend/bin目录只能本机访问,尤其是该脚本存在死循环,一定不要在浏览器下执行。

linux系统安装redis服务简单步骤:
1,一般在/usr/local/src下,执行wget http://redis.googlecode.com/files/redis-2.6.14.tar.gz
2,解压 tar -zxf redis-2.6.14.tar.gz 然后切换到这个目录。
3,make
4,一般到/etc/sysctl.conf里添加vm.overcommit_memory=1,然后reboot,这样会允许分配所有内存避免不能启动redis。
5,在redis.conf中修改一下配置,最重要的是修改如下:
daemonize yes
把它转换成驻守进程,其余配置请参考手册。
6,redis-server redis.conf启动redis,如果没有redis-server命令,可以把src下面的redis-*都复制到/usr/bin目录下
7,redis-cli启动客户端测试启动是否正常。

PHP-REDIS客户端安装,参考:https://github.com/nicolasff/phpredis
我要说一句 收起回复
一花一世界,一叶一追寻。一曲一场叹,一生为一人。

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图

您的IP:18.217.73.187,110.185.108.51,GMT+8, 2024-4-25 16:31 , Processed in 0.157119 second(s), 70 queries , Gzip On, Redis On.

Based on Discuz! W1.0 Licensed

© 2001-2024 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表