第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

請(qǐng)問(wèn)PHP如何實(shí)現(xiàn)“代碼熱更新”

請(qǐng)問(wèn)PHP如何實(shí)現(xiàn)“代碼熱更新”

PHP
哆啦的時(shí)光機(jī) 2019-03-08 09:07:34
是這樣,我有一個(gè)PHP腳本,不斷地從隊(duì)列里取出任務(wù)予以處理,大致邏輯:<main.php>require do_job.php;while (true){$job = queue_pop(); // 取出一個(gè)任務(wù),阻塞調(diào)用do_job($job); // 這個(gè)函數(shù)來(lái)自 do_job.php}該腳本直接從命令行啟動(dòng):nohup php main.php &但是隨著業(yè)務(wù)的發(fā)展,我發(fā)現(xiàn)要處理的任務(wù)種類(lèi)越來(lái)越多,所以我需要不斷地修改 do_job() 函數(shù),以處理新類(lèi)型的任務(wù)或更改之前的邏輯;但是每次修改這個(gè)函數(shù),我都需要先 kill 掉之前的進(jìn)程,然后再次執(zhí)行上面的命令行,非常不方便。我想問(wèn),如何在不停止 main.php 進(jìn)程的條件下,更新 do_job.php ?如果可以的話(huà),盡量不要引入重量級(jí)的第三方框架。我知道有一種方案可行,就是每當(dāng)收到任務(wù)后,創(chuàng)建一個(gè)php子進(jìn)程,把任務(wù)通過(guò)某種進(jìn)程間通信機(jī)制傳給它來(lái)處理,就像Apache服務(wù)器。但是我覺(jué)得這種方案過(guò)于重量級(jí)了,因?yàn)槎鄶?shù)情況下 do_job()函數(shù)很簡(jiǎn)單,很快就能執(zhí)行完,專(zhuān)門(mén)為它創(chuàng)建一個(gè)進(jìn)程,有點(diǎn)“殺雞用牛刀”。謝謝!
查看完整描述

2 回答

?
飲歌長(zhǎng)嘯

TA貢獻(xiàn)1951條經(jīng)驗(yàn) 獲得超3個(gè)贊

我們業(yè)務(wù)中也有類(lèi)似這樣的異步任務(wù)模塊,用于處理隊(duì)列、報(bào)表統(tǒng)計(jì)等等

  • crontab 任務(wù),每分鐘執(zhí)行一個(gè) crontab.sh 腳本,crontab.sh 腳本用于分發(fā) php 任務(wù),可自定義設(shè)置1分鐘、5分鐘、1小時(shí),根據(jù)需要分配粒度,這樣新增 php 任務(wù)不需要運(yùn)維幫忙新增 crontab 任務(wù)(需要申請(qǐng)運(yùn)維工單)

  • php 任務(wù)激活之后,執(zhí)行任務(wù)前:判斷是否存在任務(wù)、執(zhí)行任務(wù)進(jìn)程數(shù)是否超過(guò)規(guī)定數(shù)目、進(jìn)程是否觸發(fā)概率回收

  • 執(zhí)行當(dāng)前任務(wù)

簡(jiǎn)單實(shí)用 while + nohup 方式, 使 php 腳本常駐,邏輯處理不當(dāng),容易導(dǎo)致內(nèi)存泄漏


查看完整回答
反對(duì) 回復(fù) 2019-03-28
?
浮云間

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超4個(gè)贊

寫(xiě)個(gè)腳本 檢測(cè)你代碼是否變化 變化就重啟

查看完整回答
反對(duì) 回復(fù) 2019-03-28
  • 2 回答
  • 0 關(guān)注
  • 452 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)