プロジェクトでGearmanJobサーバーを使用しています。'gearman-ruby'gemを使用しています。アプリにはタスクのキューがあります。1つのタスクには4つの部分があります。
適切には、私にはタスクのこの部分を解決するために4人の労働者がいます。
私のシステムは、ギアマンなしで10分で1つのタスクを解決します。しかし、gearmanを使用する場合、10個のタスクを解決する時間は2〜3時間です:(
Gearmanキューはmysqlにあります。キューはオーバーフローしています。
Cronは、タスクを設定するクライアントを起動します。1つのタスク-1ページを解析します。1番目のワーカー-ページ(init)を取得、2番目-写真(画像)を取得、3番目-コメント(テキスト)を取得、4番目-特性(テキスト)を取得。最初のワーカーはページを取得し、他のワーカーはこのページとは異なるデータを解析します。
ギアマン構成:
$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
スピードワーキングのためにギアマンをセットアップするのを手伝ってください