Supervisor分散


php 5-xmlrpc拡張のインストールsudo apt-get install php5-xmlrpc
supervisorのインストールtwiddler sudo pip install -U supervisor_twiddler supervisor_twiddrerこのパッケージはsupervisorのRPCの拡張であり、supervisorの構成と状態が実行時に操作できるようにしています.
pipはpythonのパッケージ管理ツールで、pipがインストールされていない場合はsudo apt-get install python-pipでインストールできます.
supervisorの構成
supervisorへconfに以下を加える
[rpcinterface:twiddler]
supervisor.rpcinterface_factory = supervisor_twiddler.rpcinterface:make_twiddler_rpcinterface

supervisorを変更します.sockの権限、デフォルトの
[unix_http_server]
file=/var/run/supervisor.sock   ; (the path to the socket file)
chmod=0700                       ; sockef file mode (default 0700)

に改心
[unix_http_server]
file=/var/run/supervisor.sock   ; (the path to the socket file)
chmod=0766                       ; sockef file mode (default 0700)

構成config.php
  • define('REPO_PATH', '{repo_path}'); コードパス、例えば、/var/www/campaign-portal
  • define('SUPERVISOR_SOCK', '{supervisor_sock}'); supervisorのsockアドレス、supervisor.confのsupervisorctlブロックは
  • を見つけることができます
  • define('SUPERVISOR_CONF', '{supervisor_conf}'); ワークのプロファイルアドレスを生成します.たとえば、/etc/supervisor/conf.d/campaignportal.confです.このファイルの権限を777に変更する必要があります.コマンドsudo chmod 777{supervisor_conf}
  • を使用します.
  • define('GROUP_NAME', '{group_name}'); {supervisor_conf}のファイルの末尾に[group:{group_name}]programs:{program_name}
  • を付ける
    workerの追加
    ディレクトリへのアクセス{repo_path}/src/protected/入力コマンドphp yiic resque addProgram --queue="email" --count=6–queueは傍受のキュー名、–countは追加したworkerの個数を表す
    workerの削除
    ディレクトリに入ると{repo_path}/src/protected/入力コマンド`php yic resque removeProgram–reserve=3–queue="email"のうち–reserveは保留中のworkerの数を表し、–queueはキュー名を指定し、指定すると傍受キュー{queue_name}を保留するworkerの数を表し、指定しないと–queueはデフォルトですべてのキューを表す
    テスト送信メール
    それぞれ1台のマシンで1つのworkerで100個のメールを送信し、1台のマシンで10個のworkerで100個のメールを送信し、2台のマシンで各10個のworkerで100個のメールを送信した(2台のマシンで送信する場合、redisのアドレスを同じマシンに配置すればよい)テスト結果:1台のマシンで1 worker消費時間:25 sシングルマシン10 worker消費時間:7 s両マシン各10 worker消費時間:4 s