97久久国产亚洲精品超碰热,成人又色又爽的免费网站,色偷偷女人的天堂a,男女高潮喷水在线观看,国内精品一线二线三线区别在哪里

返回列表 發(fā)帖
查看: 2120|回復(fù): 0

DISCUZX3/X25論壇云上報/計劃任務(wù)異步機制方案1.0.2beta[7.22日...

56

主題

1470

回帖

3萬

積分

管理員

貢獻(xiàn)
2076 點
金幣
1394 個
樓主
發(fā)表于 2022-4-20 15:17:16 | 只看樓主 |只看大圖 |倒序瀏覽 |閱讀模式
DISCUZX3/X25論壇云上報/計劃任務(wù)異步機制方案1.0.2beta[7.22日更新]


7.22日更新
1,優(yōu)化超時問題
2,修正一個Exception錯誤


很多站長開啟了防水墻等功能,在每次發(fā)帖的時候都會同步請求云端,這樣當(dāng)網(wǎng)絡(luò)不暢的時候很容易導(dǎo)致“卡頓”的情況出現(xiàn)影響用戶體驗。

同理,論壇的計劃任務(wù)也是把論壇后臺的各種任務(wù)附加到用戶的訪問動作上,給用戶造成論壇突然很卡了的假象。
于是,我們開發(fā)了這個論壇的異步機制來處理這個問題。


什么是異步?:

在執(zhí)行過程中,我們把那些會造成卡的部分分離出來,放到后臺來執(zhí)行。

方案原理:
我們借助redis的隊列機制的BLPOP方法,在一個死循環(huán)中等待隊列中的可彈出的元素,否則就阻塞連接。
在后臺處理前臺提交過來的上報任務(wù)。

方案前提:
1,獨立服務(wù)器,能執(zhí)行命令行,并且安裝了redis服務(wù)以及php-redis擴展。
2,服務(wù)器能執(zhí)行計劃任務(wù)。

實施步驟:
1,到 http://r615.cn/thread-12045-1-1.html 按提示安裝框架。如果已經(jīng)安裝好可跳過此步。
2,關(guān)閉論壇,此過程大約需要5~15分鐘。
3,確保論壇已經(jīng)安裝好redis以及php-redis擴展,如果沒有安裝可以參考帖子下方的方法。
4,下載帖子中的附件,并上傳到服務(wù)器(不會覆蓋任何文件)
5,切換到extend/bin目錄,執(zhí)行如下命令:
  1. ~$nohup php bin_async_cron.php&
復(fù)制代碼
6,在配置文件的最下方加入如下配置:
  1. $_config['extend']['asynctask']['on'] = 1;
復(fù)制代碼
在配置文件中找到如下兩項按如下配置:
  1. $_config['remote']['on'] = '1';
  2. $_config['remote']['cron'] = '1';
復(fù)制代碼
7,執(zhí)行命令:
  1. ~$crontab -e
復(fù)制代碼
添加如下代碼到最后一行
  1. * * * * * curl "http://你的站/api/remote/index.php?mod=cron"
復(fù)制代碼
8,可以到bin目錄下查看out文件,里面記錄了云上報日志,如果發(fā)現(xiàn)里面的剩余成員數(shù)一直在增加可以再次執(zhí)行步驟5,新增一個進(jìn)程來執(zhí)行。

注意事項:
1,為了避免重啟后任務(wù)丟失,建議把步驟5添加到開機啟動里。
2,由于linux計劃任務(wù)最多每分鐘執(zhí)行一次,所以論壇的任務(wù)執(zhí)行可能有所延后而不是準(zhǔn)點執(zhí)行,比如今日發(fā)帖的任務(wù)可能就不是準(zhǔn)點更新而是延后了幾分鐘。
3,請限制extend/bin目錄只能本機訪問,尤其是該腳本存在死循環(huán),一定不要在瀏覽器下執(zhí)行。

linux系統(tǒng)安裝redis服務(wù)簡單步驟:
1,一般在/usr/local/src下,執(zhí)行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,這樣會允許分配所有內(nèi)存避免不能啟動redis。
5,在redis.conf中修改一下配置,最重要的是修改如下:
daemonize yes
把它轉(zhuǎn)換成駐守進(jìn)程,其余配置請參考手冊。
6,redis-server redis.conf啟動redis,如果沒有redis-server命令,可以把src下面的redis-*都復(fù)制到/usr/bin目錄下
7,redis-cli啟動客戶端測試啟動是否正常。

PHP-REDIS客戶端安裝,參考:https://github.com/nicolasff/phpredis

async_task1.0.2_X3X25.zip (4.28 KB, 下載次數(shù): 223)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

  • 關(guān)注公眾號
  • 有償服務(wù)微信
  • 有償服務(wù)QQ

手機版|小黑屋|Discuz! 官方交流社區(qū) ( 皖I(lǐng)CP備16010102號 |皖公網(wǎng)安備34010302002376號 )|網(wǎng)站地圖|star

GMT+8, 2025-10-16 14:10 , Processed in 0.060690 second(s), 12 queries , Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

關(guān)燈 在本版發(fā)帖
有償服務(wù)QQ
有償服務(wù)微信
返回頂部
快速回復(fù) 返回頂部 返回列表