Forums / Localized forums / Japanese / 【質問】複数人が同時にダウンロード

【質問】複数人が同時にダウンロード

Author Message

Kouichi Sakamoto

Friday 13 August 2010 12:44:50 am

いつもお世話になっております。CSKシステムズ坂本です。

不明な点がございますので、質問をさせてください。
【目的】
ダウンロードをautoloads内でオペレータとして実装し、テンプレートから呼び出すことで、複数人が同時にダウンロード処理をおこないたい。
【ダウンロード方法】
ダウンロード用のHTTPヘッダを指定し、ファイルを読んで出力
header('Content-Disposition: attachment; filename="'.basename($filepath).'"');
header('Content-Type: application/octet-stream');
header('Content-Transfer-Encoding: binary');
header('Content-Length: '.filesize($filepath));
readfile($filepath);
【環境】
ezpublish 4.1.3
PHP 5.2.10
【事象】
Firefox:複数人が同時にダウンロードが可能。
IE8:複数人が同時にダウンロードができない。
<詳細>
ダウンロードダイアログでキャンセルを行うと、30秒間以下の事象が発生する。
・自端末から別ウィンドウ、別タブでダウンロードができない。
・別の端末からダウンロードができない。
・autoload内のダウンロードオペレータと同じphpファイルの、オペレータもすべて呼び出せない。
-----------------------------------------------------------------------------------------
以下の仮説を立て、実験。
<<仮説>>
autoload内のPHPファイルは並列処理できない。
【実験】
オペレータ内でsleepを入れ、複数ブラウザから並列処理が可能か実験を行った。
【実験の事象】
複数ブラウザからのリクエストに対して並列処理する事を期待しているが、
autoloadsで定義した関数を経由した場合に、
後発ブラウザからの処理が、先発ブラウザの処理完了後に実行される。
【実験詳細】
・エクステンションの autoloads に以下の定義と処理を実装
login_check.php (内容の抜粋)
function namedParameterList()
{
return array( 'mailcheck' => array( 'str' => array
( 'type'
=>
'string',
'required' => true,
'default' => '' ) ),
'strcheck' => array( 'str' => array
( 'type'
=>
'string',
'required' => true,
'default' => '' ) )
);
}
function mailcheck( $str )
{
$fp = fopen("/tmp/sample0804.txt", "a+");
fwrite($fp, "call mailcheck start --> \n");
fwrite($fp, $str);
fwrite($fp, "\n");
fwrite($fp, date('h:i:s'));
fwrite($fp, "\n");
sleep(30);
fwrite($fp, "<--- call mailcheck end \n");
fclose($fp);
}
※問題切り分けの為、sleepを入れて30秒待機するようにしています。
・FireFoxとIEの2つのブラウザでほぼ同時にアクセス
 →それぞれ、mailcheck関数が呼ばれるが、後発が先発の処理実行後に処理さ
れる
/tmp/sample0804.tx ログ
call mailcheck start -->
Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.2) Gecko/20100115
Firefox/3.6
09:57:39
<--- call mailcheck end
call mailcheck start -->
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322;
.NET CLR 2.0.50727)
09:58:09
<--- call mailcheck end
★後発のIEの処理が先発のFFの処理完了後に受付されています。
【質問事項】
eZ Publishにおいて、autoloadsの処理は並列処理にならない仕様でしょうか?
その場合、どのように回避するものでしょうか?

長文で申し訳ございませんが、ご回答いただければと存じます。

以上、よろしくお願い致します。

eZ debug

Timing: Jan 17 2025 22:57:54
Script start
Timing: Jan 17 2025 22:57:54
Module start 'content'
Timing: Jan 17 2025 22:57:54
Module end 'content'
Timing: Jan 17 2025 22:57:55
Script end

Main resources:

Total runtime0.1491 sec
Peak memory usage4,096.0000 KB
Database Queries141

Timing points:

CheckpointStart (sec)Duration (sec)Memory at start (KB)Memory used (KB)
Script start 0.00000.0067 587.7422180.7813
Module start 'content' 0.00670.0056 768.523494.9453
Module end 'content' 0.01230.1367 863.4688536.9922
Script end 0.1490  1,400.4609 

Time accumulators:

 Accumulator Duration (sec) Duration (%) Count Average (sec)
Ini load
Load cache0.00362.4070200.0002
Check MTime0.00140.9539200.0001
Mysql Total
Database connection0.00070.447310.0007
Mysqli_queries0.104369.98511410.0007
Looping result0.00191.24241390.0000
Template Total0.136391.410.1363
Template load0.00080.509210.0008
Template processing0.135690.935910.1356
Override
Cache load0.00050.357610.0005
Sytem overhead
Fetch class attribute can translate value0.00080.552010.0008
XML
Image XML parsing0.00030.169710.0003
General
dbfile0.00352.3192200.0002
String conversion0.00000.004830.0000
Note: percentages do not add up to 100% because some accumulators overlap

CSS/JS files loaded with "ezjscPacker" during request:

CacheTypePacklevelSourceFiles
CSS0extension/community/design/community/stylesheets/ext/jquery.autocomplete.css
extension/community_design/design/suncana/stylesheets/scrollbars.css
extension/community_design/design/suncana/stylesheets/tabs.css
extension/community_design/design/suncana/stylesheets/roadmap.css
extension/community_design/design/suncana/stylesheets/content.css
extension/community_design/design/suncana/stylesheets/star-rating.css
extension/community_design/design/suncana/stylesheets/syntax_and_custom_tags.css
extension/community_design/design/suncana/stylesheets/buttons.css
extension/community_design/design/suncana/stylesheets/tweetbox.css
extension/community_design/design/suncana/stylesheets/jquery.fancybox-1.3.4.css
extension/bcsmoothgallery/design/standard/stylesheets/magnific-popup.css
extension/sevenx/design/simple/stylesheets/star_rating.css
extension/sevenx/design/simple/stylesheets/libs/fontawesome/css/all.min.css
extension/sevenx/design/simple/stylesheets/main.v02.css
extension/sevenx/design/simple/stylesheets/main.v02.res.css
JS0extension/ezjscore/design/standard/lib/yui/3.17.2/build/yui/yui-min.js
extension/ezjscore/design/standard/javascript/jquery-3.7.0.min.js
extension/community_design/design/suncana/javascript/jquery.ui.core.min.js
extension/community_design/design/suncana/javascript/jquery.ui.widget.min.js
extension/community_design/design/suncana/javascript/jquery.easing.1.3.js
extension/community_design/design/suncana/javascript/jquery.ui.tabs.js
extension/community_design/design/suncana/javascript/jquery.hoverIntent.min.js
extension/community_design/design/suncana/javascript/jquery.popmenu.js
extension/community_design/design/suncana/javascript/jScrollPane.js
extension/community_design/design/suncana/javascript/jquery.mousewheel.js
extension/community_design/design/suncana/javascript/jquery.cycle.all.js
extension/sevenx/design/simple/javascript/jquery.scrollTo.js
extension/community_design/design/suncana/javascript/jquery.cookie.js
extension/community_design/design/suncana/javascript/ezstarrating_jquery.js
extension/community_design/design/suncana/javascript/jquery.initboxes.js
extension/community_design/design/suncana/javascript/app.js
extension/community_design/design/suncana/javascript/twitterwidget.js
extension/community_design/design/suncana/javascript/community.js
extension/community_design/design/suncana/javascript/roadmap.js
extension/community_design/design/suncana/javascript/ez.js
extension/community_design/design/suncana/javascript/ezshareevents.js
extension/sevenx/design/simple/javascript/main.js

Templates used to render the page:

UsageRequested templateTemplateTemplate loadedEditOverride
1pagelayout.tpl<No override>extension/sevenx/design/simple/templates/pagelayout.tplEdit templateOverride template
 Number of times templates used: 1
 Number of unique templates used: 1

Time used to render debug report: 0.0001 secs