我在我的項目中使用Gearman Job服務器。我使用'gearman-ruby'寶石。 應用程序中有一個任務隊列。一項任務有4個部分。
恰當地,我有4名工人來解決這部分任務。減速機任務隊列溢出並完成任務
我的系統在10分鐘內解決1個任務,沒有工人。但是當我使用減速機時,解決10個任務的時間是2-3小時:(
減速機隊列位於mysql中,隊列溢出
Cron啓動客戶端,它設置任務一個任務 - 解析一個頁面 1st worker - 獲取頁面(init),2nd - 獲取照片(images),3rd - 獲取評論(text),4rd - 獲取特性(text),1 worker獲取頁面,其他worker分析這些頁面的不同數據
Gearman的CONFIGS:
$cat /etc/sysconfig/gearmand
## Settings for gearmand
OPTIONS="--listen=127.0.0.1
--job-retries=3 \
--log-file=/var/log/gearman.log \
--queue-type=MySQL \
--mysql-host=localhost \
--mysql-port=3306 \
--mysql-db=gearman \
--mysql-table=queue"
$gearmand --version
gearmand 0.35
幫助我,請設置Gearman的速度工作
你提供的工作太少了。請添加更多詳細信息:(在合理的範圍內)任務的性質,當前的服務器設置以及執行實際處理(工作人員)的代碼。正如描述所述,問題可能是任何事情/一切。 – fmendez 2013-03-18 16:03:58
客戶端設置任務,但我在10-15分鐘後在gearman.queue(mysql表中)中看到此任務。在工人開始執行任務之前,有一段時間的延遲。我只在1個任務中測試了減速器的時候看着它。這就是爲什麼我認爲這個問題是在德國的設置... – bmalets 2013-03-18 17:38:19
添加「 - 線程= 12」到配置。工人開始執行任務之前的延遲明顯減少。但是Gearman仍然工作得非常緩慢......並且隊列溢出了任務。任務解決了,但仍然存在於gearman.queue :( – bmalets 2013-03-18 17:51:05