PHP7環(huán)境下的Gearman任務(wù)分發(fā)隊列調(diào)試

其實入門及介紹不想多說,安裝這一塊也不想多說,單講下php調(diào)試這一塊,由于網(wǎng)上及官方既有的一些代碼在調(diào)試時都會出現(xiàn)如下這一類似的錯誤:

Fatal error: Uncaught Error: Call to undefined method GearmanClient::do() in /mntxxx/client_gearman.php:4
Stack trace:
#0 {main}
  thrown in /mntxxx/client_gearman.php on line 4

別的環(huán)境貌似不會,但php7環(huán)境下會出錯,下面貼上一段php7環(huán)境下Gearman調(diào)試無錯的代碼:
client端:
client.php

<?php
// Name of function
$funcName = 'generateReport';
// Data for function
$data = [
    'report' => 'user_statistic',
];

$client = new GearmanClient();
$client->addServer('127.0.0.1', '4730');

$client->doBackground($funcName, json_encode($data));

Server端:
server.php

<?php
$worker = new GearmanWorker();
$worker->addServer();
$worker->addFunction('generateReport', 'generate');
$worker->work();

function generate($job)
{
    $workload = $job->workload();
    $data = json_decode($workload, true);
    
    // do generate...
    echo "generate... \n";
    sleep(3);
    //set status into db
    echo "set status into db... \n";
    sleep(2);
    echo "done! \n";
}

在命令行先運行處理程序worker端
php server.php

再運行client端
php client.php

下面是返回信息,搞惦:

generate... 
set status into db... 
done! 

至此,該worker端處理器已經(jīng)完成他的工作,并已關(guān)閉,可通過gearadmin狀態(tài)監(jiān)測工具進(jìn)行驗證。

gearadmin --status

111.jpg

上面這里,第一列指函數(shù)名稱注冊在服務(wù)器; 第二列指隊列中的任務(wù)數(shù); 第三列指在目前進(jìn)行的任務(wù)數(shù); 第四列指處理器將與工作任務(wù)的數(shù)量。

如果再次運行客戶端,你可以看到任務(wù)的隊列數(shù)量將增加:

php server.php
gearadmin --status
generateReport    1    1    1
gearadmin --status
generateReport    0    0    0
php server.php
 gearadmin --status
 generateReport 1 1 1
 gearadmin --status
 generateReport 0 0 0 

gearadmin 工具,可以用
--workers參數(shù)查看當(dāng)前多少個worker都什么函數(shù)

11.png

--status參數(shù)查看當(dāng)前多少個worker啟動項

22.png

其他選項看下表

33.jpg
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,551評論 19 139
  • Nginx簡介 解決基于進(jìn)程模型產(chǎn)生的C10K問題,請求時即使無狀態(tài)連接如web服務(wù)都無法達(dá)到并發(fā)響應(yīng)量級一萬的現(xiàn)...
    魏鎮(zhèn)坪閱讀 2,213評論 0 9
  • 語 句 功 能 數(shù)據(jù)操作 SELECT——從數(shù)據(jù)庫表中檢索數(shù)據(jù)行和列INSERT——向數(shù)據(jù)庫表添加新數(shù)據(jù)行DELE...
    戰(zhàn)敭閱讀 5,230評論 0 53
  • 早上手機(jī)拍的朝霞,沒有經(jīng)過任何濾鏡處理
    UTF8925閱讀 259評論 0 0
  • 一晃,距離上次日記的時間都兩周了,真快。 最近幾天心情不好,天總陰總下雨?,F(xiàn)實總是一次次給我打擊,你四處討好,別人...
    圈_圈_閱讀 359評論 0 0

友情鏈接更多精彩內(nèi)容