gearman引數說明

2022-02-12 12:12:51 字數 2757 閱讀 1047

-b, –backlog=backlog 連線請求佇列的最大值

-d, –daemon daemon 守護程序化

-f, –file-descriptors=fds 可開啟的檔案描述符數量

-h, –help

-l, –log-file=file log 日誌檔案

-l, –listen=address 開啟監聽的位址

-p, –port=port 開啟監聽的埠

-p, –pid-file=file file pid file

-r,–protocol=protocol 使用的協議

-q, –queue-type=queue 持久化佇列型別

-t, –threads=threads i/o執行緒數量

-u, –user=user 程序的有效使用者名稱

gearman說明:

後台作業指的是在cli命令列下新增的任務。在程式裡加入的不是後台任務。

在程式裡新增的任務,用的是dobackground方法呼叫的work,如果在執行的時候work掛了,沒有執行完的任務會儲存在gearman job server中,不會丟失。當work重啟後,會繼續執行。

為了保證,可以多啟動幾個work,job server會把任務分配到可用的server中,相當於多程序來執行job了。

如果gearman job server掛了,那麼任務就丟失了

持久化佇列將後台作業存放在乙個外部持久的佇列中。持久化佇列只對後台jobs有效,因為前台jobs依附於客戶端。如果job伺服器擋掉了,客戶端會檢測到,將會從其他地方重新啟動這個前台job或者返回錯誤。而後台jobs沒有依附於客戶端,如果要想讓它執行則需要提交。

/sbin/gearmand -p 4730 -l 0.0.0.0 -p 4730  -q mysql --mysql-host=localhost  --mysql-port 3306 

--mysql-user=root --mysql-password pwd --mysql-db=gearman --verbose debug -d

gearman用mysql持久化之後,其實會帶來一些問題。

1. 每個任務都會寫入資料庫,這樣會帶來磁碟io的損耗,並且gearman的效能瓶頸又多了乙個可能,就是由資料庫引起的效能問題。

2. mysql有個「wait_timeout」的引數,在mysql命令列中執行

show variables like "%timeout%";
可以看到wait_timeout的值,預設是28800。也就是說,如果乙個mysql的連線,超過28800s沒有任何響應,就會斷開。

3. gearman持久化的方式,如果超過了mysql的wait_timeouts的時間沒有任何響應,和資料庫的連線就會被mysql斷開,而且gearman目前是沒有mysql重新連線的,結果就是,會導致如下錯誤,必須重啟gearman才能重新正常工作。

gearman報錯 

error 2014-04-01 02:10:02.897899 [ proc ] mysql_stmt_execute failed: -> libgearman-server/plugins/queue/mysql/queue.cc:357

error 2014-04-01 02:10:02.897910 [ proc ] gearman_server_job_add gearman_server_run_command(queue_error) -> libgearman-server/server.cc:301

所以,gearman持久化方式帶來的缺點顯而易見,該方式下,要避免gearman對mysql連線超時斷開,可以將mysql的wait_timeout引數改大。

或者,直接放棄用mysql的持久化方式。

Cache control引數說明

header中的cache control引數說明 php編碼 網頁的快取是由http訊息頭中的 cache control 來控制的,常見的取值有private no cache max age must revalidate等,預設為private。其作用根據不同的重新瀏覽方式分為以下幾種情況 ...

nmap引數說明

目標規範 可以通過主機名,ip位址,網路等 例 scanme.nmap.org,dream4.org 24,192.168.0.1 10.0.0 255.1 254 il 從指定檔案獲取主機或網路 ir 隨機選擇主機,0 不限制掃瞄主機數 exclude 排除指定主機或網路 excludefile ...

toString引數說明

格式化數值 有時,我們可能需要將數值以一定的格式來呈現,就需要對數值進行格式化。我們使用格式字串指定格式。格式字串採用以下形式 axx,其中 a 為格式說明符,指定格式化型別,xx 為精度說明符,控制格式化輸出的有效位數或小數字數。格式說明符 說明 示例 輸出 c 貨幣 2.5.tostring c...