<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          MultiWorkerPHP 多進(jìn)程管理器

          聯(lián)合創(chuàng)作 · 2023-10-01 09:23

          MultiWorker PHP多進(jìn)程管理器

          Multiworker是純PHP實(shí)現(xiàn)的多進(jìn)程管理器,使用master-worker進(jìn)程模型,適用于命令行下的多進(jìn)程調(diào)度、并發(fā)處理、工作進(jìn)程崩潰自動(dòng)恢復(fù)、單實(shí)例限制。

          項(xiàng)目主頁(yè) https://github.com/beyosoft/multiworker

          bug及使用反饋:[email protected]

          一、特點(diǎn):

          1. 使用master-worker進(jìn)程模型,穩(wěn)定可靠。 Multiworker運(yùn)行實(shí)例由一個(gè)master進(jìn)程(稱為主進(jìn)程)、多個(gè)Worker進(jìn)程(稱為工作進(jìn)程或子進(jìn)程)組成,主進(jìn)程主要工作進(jìn)程的生成、和退出狀態(tài)監(jiān)測(cè)。一旦有工作進(jìn)程異常退出,主進(jìn)程就會(huì)立即再生成一個(gè)工作進(jìn)程,接替其繼續(xù)工作。因?yàn)橹鬟M(jìn)程不參與具體業(yè)務(wù)邏輯,幾乎沒(méi)有異常退出的可能。

          2. 輕量級(jí)、無(wú)外部依賴。只有一個(gè)類文件、可適用用于任何項(xiàng)目和框架。

          3. 支持單實(shí)例功能,配合crontab可實(shí)現(xiàn)高可靠性的后臺(tái)任務(wù)。 實(shí)際業(yè)務(wù)中,我們往往希望一個(gè)任務(wù)由單實(shí)例運(yùn)行,只有前一個(gè)實(shí)例異常退出時(shí),新的實(shí)例才能成功運(yùn)行,結(jié)合crontab和Multiworker的單實(shí)例功能,可以很容易實(shí)現(xiàn)一個(gè)高可靠的后臺(tái)任務(wù)。

          4. 并發(fā)任務(wù)調(diào)度處理。不同的工作進(jìn)程可負(fù)責(zé)不同的任務(wù)處理,相比單進(jìn)程可極大提高整體任務(wù)處理效率。

          5. 工作進(jìn)程狀態(tài)監(jiān)測(cè)。當(dāng)工作進(jìn)程以指定的正常狀態(tài)退出后,主進(jìn)程不會(huì)再生產(chǎn)新的子進(jìn)程,當(dāng)所有工作進(jìn)程以指定的正常狀態(tài)退出時(shí),主進(jìn)程認(rèn)為任務(wù)處理完畢,自己同時(shí)退出。

          6. 信號(hào)控制和進(jìn)程運(yùn)行控制。實(shí)例在運(yùn)行中,向主進(jìn)程發(fā)送SIGTERM信號(hào)時(shí),主進(jìn)程會(huì)向每個(gè)子進(jìn)程發(fā)送信號(hào),告知其及時(shí)退出,當(dāng)所有工作進(jìn)程退出后,主進(jìn)程也退出。

          二、環(huán)境要求

          1. 因?yàn)槭褂肔inux信號(hào)控制,需要posix擴(kuò)展,只支持Linux類系統(tǒng),不支持windows。

          2. 需要php 5.3+。

          三、注意事項(xiàng)

          1. 工作進(jìn)程可以共用一個(gè)數(shù)據(jù)庫(kù)連接資源嗎?

            絕對(duì)不能,每個(gè)工作進(jìn)程必須重新建立一個(gè)數(shù)據(jù)庫(kù)連接,否則會(huì)引發(fā)不可意料的結(jié)果??梢栽趏nWorkerStart回調(diào)中關(guān)閉主進(jìn)程已經(jīng)建立的數(shù)據(jù)庫(kù)連接,再重新打開即可。

          2. 如何實(shí)現(xiàn)不同的工作進(jìn)程執(zhí)行不同的任務(wù)?

            onWorkerStart回調(diào)的參數(shù),就是進(jìn)程的PIN(process index number), 它從0開始編號(hào),可以通過(guò)判斷PIN從而讓子進(jìn)程完成不同的任務(wù)。

          3. 可靠性如何?

            久經(jīng)生產(chǎn)環(huán)境實(shí)際長(zhǎng)久運(yùn)行,請(qǐng)放心使用。

          瀏覽 8
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  在线观看国产免费视频 | 夜夜看,夜夜爽 | 久久国产精品精品国产色综合 | 天天摸天天日天天操 | 亚洲无码高清视频在线观看 |