NAME
Gungho::Engine::POE - Gungho用POEエンジン
SYNOPSIS
engine:
module: POE
config:
loop_delay: 5
client:
spawn: 2
agent:
- AgentName1
- AgentName2
max_size: 16384
follow_redirect: 2
proxy: http://localhost:8080
keepalive:
keep_alive: 10
max_open: 200
max_per_host: 20
timeout: 10
dns:
# disable: 1 If you want to disable DNS resolution by Gungho
DESCRIPTION
Gunghog::Engine::POE�POEを用��Gunghoを動�����モジュール��。
CONFIGURATION
Gungho::Engine::POEã�§ä½¿ç”¨å�¯èƒ½ã�ªè¨å®šé …ç›®ã�¯ä»¥ä¸‹ã�®é€šã‚Šã�§ã�™ï¼š
client.loop_delay
client.loop_delay
�dispatch
�定期的�呼�出�れる���待�秒数を 指定���。
ã�„ã�¤ã�©ã‚Œã� ã�‘ã�®ãƒªã‚¯ã‚¨ã‚¹ãƒˆã�Œç™ºç”Ÿã�™ã‚‹ã�®ã�‹ã‚�ã�‹ã‚‰ã�šã€�ã�ªã�Šã�‹ã�¤ãƒªã‚¯ã‚¨ã‚¹ãƒˆã�Œç™ºç”Ÿã�—ã�Ÿ 直後ã�«Gungho内ã�§ãƒªã‚¯ã‚¨ã‚¹ãƒˆã‚’é€�ä¿¡ã�—ã�Ÿã�„å ´å�ˆã�¯ã�“ã�®å€¤ã‚’å°�ã�•ã‚�ã�«è¨å®šã�™ã‚‹å¿…è¦�ã�Œ ã�‚ã‚Šã�¾ã�™ã€‚
ã�Ÿã� ã�—ã�“ã�®å€¤ã‚’ã�‚ã�¾ã‚Šå°�ã�•ã��è¨å®šã�—ã�¦ã�—ã�¾ã�†ã�¨HTTP通信を行ã�†ã‚ˆã‚Šé »ç¹�ã�«dispatch
を呼ã�³å‡ºã�™äº‹ã�«ã�ªã�£ã�Ÿã‚Šï¼ˆHTTP通信ã�®ã�»ã�†ã�Œã�Šã‚�ã��ã�‹ã�«ã�ªã‚Šã€�パフォーマンスã�Œä½Žä¸‹ ã�™ã‚‹ï¼‰ã€� ã�‚ã�¾ã‚Šã�«ã‚‚膨大ã�ªé‡�ã�®ãƒªã‚¯ã‚¨ã‚¹ãƒˆã‚’é€�ä¿¡ã�—ã�¦ã�—ã�¾ã�†ã�¨Gunghoより先ã�® レイヤーã�§ã‚¹ãƒ”ードã�Œæ¥µç«¯ã�«é�…ã��ã�ªã�£ã�Ÿã‚Šã�™ã‚‹åŽŸå› ã�¨ã�ªã‚Šå¾—ã�¾ã�™ã€‚
基本的ã�«ã�¯ã�‚ã�¾ã‚Šå°�ã�•ã�™ã�Ž ã�‹ã�ˆã�£ã�¦ãƒ‘フォーマンスã�Œæ‚ªã��ã�ªã‚Šã�¾ã�™ã�®ã�§æ³¨æ„�ã�—ã�¦ è¨å®šã�—ã�¦ã��ã� ã�•ã�„。
client.spawn
client.spawn
�内部�使用���るPOE::Component::Client::HTTP�数を指定 ���。POE::Component::Client::HTTP�1セッション毎��る程度以上�リクエスト を���る��応����り始�る���れを回��る����る程度�セッション数 を作る必��出��る事��り��。
ã�Ÿã� ã�—ã€�ã��ã�®å…ˆã�®ãƒ�ットワーク自体ã�Œé�…ã��ã�ªã�£ã�¦ã�„ã‚‹å�¯èƒ½æ€§ã‚‚高ã�„ã�®ã�§ã�“ã�®å€¤ã‚’ 極端ã�«é«˜ã��ã�—ã�Ÿã�¨ã�“ã‚�ã�§ã��ã‚Œã�»ã�©ã�®ãƒ‘フォーマンスアップã�¯è¦‹è¾¼ã‚�ã�ªã�„å ´å�ˆã‚‚ã�‚ã‚Šã�¾ã�™ã€‚
ãƒ�ットワーク帯域ã�Œä½™ã�£ã�¦ã�„る状態ã�§ã€�ã�ªã�Šã�‹ã�¤Gunghoå�˜ä½“ã�§ã�®HTTP通信ã�Œé�…ã��ã�†ã�ª å ´å�ˆã�®ã�¿ã�“ã�®å€¤ã‚’大ã��ã��ã�—ã�¦ã��ã� ã�•ã�„。
デフォルト値�2��。
dns.disable
DNS解決をã�—ã�Ÿã�„å ´å�ˆã�¯ã�“ã�®å€¤ã‚’1ã�«ã�—ã�¦ã��ã� ã�•ã�„。一部ã�®ç’°å¢ƒã�§ã�¯ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆå�´ã�§ã�® DNS解決ã�Œé§„ç›®ã�§ã‚‚経路ã�«ã�‚るプãƒã‚ã‚·ã�ŒDNS解決を行ã�†ç‰ã�®è¨å®šã�Œã�•ã‚Œã�¦ã�Šã‚Šã€�ã�“ã‚Œã�Œ å•�é¡Œã�¨ã�ªã‚‹äº‹ã‚‚ã�‚ã‚Šã�¾ã�™ã€‚ã��ã�®éš›ã�¯ã�“ã�®é …目を1ã�«è¨å®šã�—ã�¦ã��ã� ã�•ã�„。
デフォルト値�0��。
keepalive
keepalive
é …ç›®ã�¯POE::Component::Client::Keepaliveã‚’è¨å®šã�™ã‚‹ã�Ÿã‚�ã�« 使用ã�—ã�¾ã�™ã€‚
プãƒã‚シを通ã�—ã�Ÿç’°å¢ƒã�§Gunghoを使用ã�—ã�¦ã�„ã‚‹å ´å�ˆã�¯ã�“ã�®è¨å®šã�Œé‡�è¦�ã�«ã�ªã�£ã�¦ã��ã‚‹ å ´å�ˆã�Œã�‚ã‚Šã�¾ã�™ã€‚Gungho::Engine::POEã�¯å†…部ã�§æŽ¥ç¶šä¸ã�®ã‚½ã‚±ãƒƒãƒˆã‚’使ã�„回ã�™ã‚ˆã�†ã�« 作られã�¦ã�„ã�¾ã�™ã�Œã€�ã‚‚ã�—プãƒã‚ã‚·ã�«ã�¤ã�ªã�’ã‚‹å ´å�ˆã�¯æŽ¥ç¶šå¯¾è±¡ã‚µãƒ¼ãƒ�ーã�Œã�²ã�¨ã�¤ã�ªã�®ã�§ã€� å…¨ã�¦ã�®ãƒªã‚¯ã‚¨ã‚¹ãƒˆã�Œå�Œä¸€ã‚½ã‚±ãƒƒãƒˆã‚’使ã�†ã‚ˆã�†ã�«ã�ªã�£ã�¦ã�—ã�¾ã�„ã€�çµ�果的ã�«ä¸¦åˆ—処ç�†ã�Œ ã�§ã��ã�ªã��ã�ªã‚Šã�¾ã�™ (é€�é�Žåž‹ãƒ—ãƒã‚ã‚·ã�¯ã�“ã�®å¯¾è±¡ã�«å�«ã�¾ã‚Œã�¾ã�›ã‚“)。
Gunghoã�¯ãƒ—ãƒã‚ã‚·ã�®ä½¿ç”¨ã‚’検出ã�—ã�Ÿå ´å�ˆã�¯ã�“ã�®è¨å®šã‚’自動的ã�«ã�™ã‚‹ã‚ˆã�†åŠªåŠ›ã�—ã�¾ã�™ã�Œã€� 明示的ã�«æŒ‡å®šã�™ã‚‹å ´å�ˆã�¯
keepalive:
keep_alive: 0
ã�¨æŒ‡å®šã�—ã�¦ã��ã� ã�•ã�„。ã��ã�®ä»–ã�®POE::Component::Client::Keepaliveè¨å®šã‚’変更 ã�™ã‚‹å ´å�ˆã�¯ã€�以下ã�®ã‚ˆã�†ã�«è¨å®šã�—ã�¦ã��ã� ã�•ã�„
keepalive:
max_per_host: ....
max_open: ...
timeout: ...
keepalive.timeout
é …ç›®ã‚’è¨å®šã�™ã‚‹å ´å�ˆã�¯USING KEEPALIVEã‚‚ å�‚ç…§ã�—ã�¦ã��ã� ã�•ã�„。
POE::Component::Client::HTTP AND DECODED CONTENTS
POE::Component::Client::HTTP ã�¯ãƒ�ージョン0.80以é™�ã€�å�–å¾—ã�—ã�Ÿãƒ¬ã‚¹ãƒ�ンス内容を å‹�手ã�«Perl Unicodeã�«ãƒ‡ã‚³ãƒ¼ãƒ‰ã�—ã�¦ã�—ã�¾ã�†äº‹ã�Œã�‚ã‚Šã�¾ã�™ã€‚ã��ã�®å ´å�ˆã€�ã�Ÿã�¨ã�ˆHTTP ヘッダー自体ã�Œä»¥ä¸‹ã�®ã‚ˆã�†ã�«ã�ªã�£ã�¦ã�„ã�¦ã‚‚ã€�実際ã�«æ¸¡ã�£ã�¦ã��るデータ内容ã�¯ æ£è¦�化ã�•ã‚Œã�ŸUnicodeã�§ã�‚る事ã�Œã�‚ã‚Šã�¾ã�™ï¼š
Content-Type: text/html; charset=euc-jp
ã�“ã‚Œã�¯POE::Component::Client::HTTPã�ŒContent-Encodingã‚’ã�†ã�¾ã��処ç�†ã�—よã�†ã�¨ã�—ã�¦ è¡Œã�£ã�¦ã�„る一連ã�®å‹•ä½œã�®å‰¯ä½œç”¨ã�ªã�®ã�§ã�™ã�Œã€�ヘッダーを信用ã�—ã�¦ãƒ‡ã‚³ãƒ¼ãƒ‰ã‚’ã�—ã�¦ã�¿ã�Ÿã‚‰ エラーã�Œèµ·ã�“ã‚‹ã€�ã‚‚ã�—ã��ã�¯æ–‡å—化ã�‘ã�Œèµ·ã�“ã‚‹ç‰ã�®ç�¾è±¡ã�®åŽŸå› ã�¨ã�ªã‚Šå¾—ã�¾ã�™ã€‚
Gunghoã�§ã�¯ã�“ã�®å•�題を回é�¿ã�™ã‚‹ã�Ÿã‚�ã�«ä»¥ä¸‹ã�®ç’°å¢ƒå¤‰æ•°ã‚’ãƒ�ェックã�—ã€�ã�“れらã�Œ æ£ã�§ã�‚ã‚Œã�°å›žé�¿ç–を動作ã�•ã�›ã�¾ã�™ã€‚
GUNGHO_ENGINE_POE_SKIP_DECODE_CONTENT = 1
# or
GUNGHO_ENGINE_POE_FORCE_ENCODE_CONTENT = 1
ã��ã‚Œã�žã‚Œã�®æŒ™å‹•è©³ç´°ã�«ã�¤ã�„ã�¦ã�¯ENVIRONMENT VARIABLES ã‚’ã�”覧ã��ã� ã�•ã�„。
SPECIFYING USER AGENT
Gungho::Engine::POEã�¯POE::Component::Client::HTTPã�Œã��れを実装ã�—ã�¦ã�„ã‚‹ã�Ÿã‚�ã€� 複数ã�®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚¨ãƒ¼ã‚¸ã‚§ãƒ³ãƒˆå��を使用ã�™ã‚‹äº‹ã�Œã�§ã��ã�¾ã�™ã€‚複数ã�®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚¨ãƒ¼ã‚¸ã‚§ãƒ³ãƒˆ å��を使用ã�™ã‚‹ã�«ã�¯ç›´æŽ¥client.agentã�«ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚¨ãƒ¼ã‚¸ã‚§ãƒ³ãƒˆå��ã‚’å�«ã‚“ã� リストを 渡ã�—ã�¦ã��ã� ã�•ã�„。
ã�Ÿã� ã�—ã€�ä»–ã�®ã‚¨ãƒ³ã‚¸ãƒ³ã�¯ã�“ã�®æ©Ÿèƒ½ã‚’実装ã�—ã�¦ã�„ã�ªã�„å�¯èƒ½æ€§ã�Œé«˜ã�„ã�®ã�§ã€�è¨å®šãƒ•ã‚¡ã‚¤ãƒ«ã‚’ ãƒ�ータブルã�ªã‚‚ã�®ã�«ã�—ã�Ÿã�„å ´å�ˆã�¯ã€�トップレベルã�®é …ç›®ã�§ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚¨ãƒ¼ã‚¸ã‚§ãƒ³ãƒˆå��ã‚’ 指定ã�—ã�¦ã��ã� ã�•ã�„:
user_agent: my_user_agent
engine:
module: POE
...
USING KEEPALIVE
Gungho::Engine::POE�内部�POE::Component::Client::Keepaliveを使用�� ソケット接続を制御�����。
ã�»ã�¨ã‚“ã�©ã�®è¨å®šã�¯ãƒ‘フォーマンス以外特ã�«ãƒ¦ãƒ¼ã‚¶ãƒ¼ã�®ç›®ã�«è§¦ã‚Œã‚‹ã‚‚ã�®ã�§ã�¯ã�‚ã‚Šã�¾ã�›ã‚“ã�Œã€� timeout
è¨å®šã�¯ã‚¨ãƒ³ã‚¸ãƒ³ã�Œçµ‚了ã�™ã‚‹æ™‚ã�«å½±éŸ¿ã�™ã‚‹å�¯èƒ½æ€§ã‚‚ã�‚ã‚Šã�¾ã�™ã€‚timeout
値 ã�Œé«˜ã�„ã�¨ã��ã�®æŽ¥ç¶šã�Œåˆ‡ã‚Œã‚‹ã�¾ã�§POE自体ã�Œæ´»å‹•ã‚’æ¢ã‚�られã�ªã�„ã�®ã�Œã��ã�®ç�†ç”±ã�§ã�™ã�Œã€� ã�“ã‚Œã�¯æ£å¸¸ã�ªå‹•ä½œã�§ã�™ã€‚
ENVIRONMENT VARIABLES
GUNGHO_ENGINE_POE_SKIP_DECODE_CONTENT
ã�“ã�®å€¤ã�Œæ£ã�¨ã�ªã�£ã�¦ã�„ã‚‹å ´å�ˆã€�Gunghoã�¯HTTP::Responseã�®ãƒ�ームスペース上ã�« 関数を作æˆ�ã�—ã€�decoded_content()を呼んã�§ã‚‚デコードã�Œè¡Œã‚�ã‚Œã�ªã�„よã�†ã�«ã�—ã�¾ã�™ã€‚ ã�Šè¡Œå„€ã�®ã‚ˆã��ã�ªã�„作法ã�§ã�™ã�Œã€�ã�¨ã‚Šã�‚ã�ˆã�šã�“ã‚Œã�§ãƒ‡ã‚³ãƒ¼ãƒ‰ã�¯èµ·ã�“らã�ªã��ã�ªã‚Šã�¾ã�™ã€‚
ã�“ã�®å›žé�¿ç–ã�¯ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã�§æœ‰åŠ¹ã�«ã�ªã�£ã�¦ã�„ã�¾ã�™ã€‚
GUNGHO_ENGINE_POE_FORCE_ENCODE_CONTENT
ã�“ã�®å€¤ã�Œæ£ã�¨ã�ªã�£ã�¦ã�„ã‚‹å ´å�ˆã€�Gunghoã�¯handle_responnse()ã�«æˆ»ã�£ã�¦ã��ã�Ÿãƒ¬ã‚¹ãƒ�ンス ã‚’Handlerã�«æ¸¡ã�™å‰�ã�«Content-Typeã�ŒæŒ‡å®šã�™ã‚‹å€¤ã�«ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰ã�—ã�ªã�Šã�—ã�¾ã�™ã€‚
ã�“ã�®å›žé�¿ç–ã�¯ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã�§ç„¡åŠ¹ã�«ã�ªã�£ã�¦ã�„ã�¾ã�™ã€‚
METHODS
setup
エンジンを�期化���。
run
メインループを開始���。
send_request
与�られ�リクエストを処����。
TODO
ファイルシステムã�¸ã�®HTTPレスãƒ�ンスã�®æ ¼ç´�
1 POD Error
The following errors were encountered while parsing the POD:
- Around line 3:
Non-ASCII character seen before =encoding in 'Gungho用POEエンジン'. Assuming CP1252