バグ報告 > フロント機能 > 受注一覧をCSVで全件出力したい |
フロント機能
スレッド表示 | 古いものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
cro233 |
投稿日時: 2021/2/15 11:05
対応状況: 解決済
|
常連 登録日: 2020/1/9 居住地: 投稿: 69 |
Re: 受注一覧をCSVで全件出力したい 468 様
かなり詳しく疑問点についてご教示いただきありがとうございます。 おっしゃっていただいてるように共用レンタルサーバーで他の利用者に迷惑を掛けるわけにもいかないため、使用する際のみ、一時的に大きめの値にするということになりました。 その際に全件は出力できないこともあるため、期間を分割して出力することで解決できそうです。 ありがとうございました。 |
468 |
投稿日時: 2021/2/12 20:53
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 受注一覧をCSVで全件出力したい >こちらの値を 256M → 6G に変更しました。
>値を大きくしすぎた場合、何か弊害が出る場合は教えていただけますと幸いです。 一応、前提条件の説明となりますが、エックスサーバのように共用レンタルサーバは1台のサーバを複数の契約者でシェアして利用しているものとなります。 必要な費用を人数分で分割している為、一人当たりの利用料が安くなるというメリットがあります。 シェアしているという事は1人の利用者がサーバのリソース(今回でいえばメモリ)を独占的に無制限に使うと 同じサーバを利用している無関係なサイトが重たくなる等、他の利用者に迷惑をかけた状態となりますので そういった事が出来ないようにほとんどのサービスでは制限が掛けられています。 (共用レンタルサーバおいて性能面がデメリットとなるのは上記の理由からです) サーバスペックでメモリは公表されていないと思いますので ハッキリとした数値は分かりませんが memory_limitを6Gに変更しても実際は6Gも利用できていないと思います。 エックスサーバWEBサイトの禁止事項について > 設置するCGIに制限はありますか? の回答に「当サービスでは高負荷なCGIスクリプトの設置はできません。」とありますので 高負荷な処理を検知したり、強制的に処理を止める等の何かしらの仕組みはあると思います。 https://www.xserver.ne.jp/support/faq/faq_dont.php memory_limitなどPHPの制限に関する値を大きく設定した場合の弊害はそれだけサーバに負荷がかかります。 サーバが高負荷な状態になると反応は遅くなりますし、最悪サーバが停止してしまう為、その点が問題になってくるかと思います。 >考えられる原因としては以下にも memory_limit の記載を入れることでしょうか? >src/Eccube/Controller/Admin/Order/OrderController.php この件については、アプリケーションのプログラムではどうしようもない事かと思います。 極端な話、3Gしかメモリを積んでいないサーバでphp.iniで6Gを指定しても6Gもメモリが利用できない事と 同じかと思います。 2万件という件数が多いか少ないかは、私では判断致しかねますが 運用を進めていけばいくほど、注文件数は増えていくかと思いますので 1度に全件出力したいというご要望は将来的にも実現できないと思われたほうが良いと思います。 どうしても全件出力する必要があるのであれば、 サーバを占有タイプのものに乗り換える等といったアプローチも必要になってくるかと思います。 あと、ファイルサイズの22MBはメモリとはあまり関係がない情報になるかと思います。 今はファイルに書き出す前のメモリの利用量が問題かと思います。
|
cro233 |
投稿日時: 2021/2/10 18:08
対応状況: 確認中
|
常連 登録日: 2020/1/9 居住地: 投稿: 69 |
Re: 受注一覧をCSVで全件出力したい 468 様
ご回答ありがとうございます。 エックスサーバーのphp.iniの設定を確認したところデフォルトで memory_limitが256M でした。 こちらの値を 256M → 6G に変更しました。 値を大きくしすぎた場合、何か弊害が出る場合は教えていただけますと幸いです。 ただ、まだ理想通りには動いてない状態です。 昨日までの情報を一旦記載します。 ・取得しようとしていた受注件数:450件 ・ダウンロードできた件数:200件 ・少ない件数の場合:全件ダウンロード可能 本日、エックスサーバーのphp.iniの設定を変更後、1万件まではダウンロードできるようになりました。 ちなみにファイルサイズは22MBでした。 ただ、全件はまだ出来てないようです。(全件で2万ちょっとです) 考えられる原因としては以下にも memory_limit の記載を入れることでしょうか? src/Eccube/Controller/Admin/Order/OrderController.php 原因が出ない記述の仕方をご存知でしたらご教示いただけますと助かります。 大変お手数ですがよろしくお願いいたします。 |
468 |
投稿日時: 2021/2/10 12:38
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 受注一覧をCSVで全件出力したい 受注データの件数が全件でどのくらいあるのか分かりませんが、
エックスサーバ(共用レンタルサーバ)を利用されている時点で使用できるメモリには上限が設けられていると思います。 リンク先にあるように6Gも使えないのではないでしょうか? 少ない件数であれば問題無くダウンロードできる状況ですか?
|
cro233 |
投稿日時: 2021/2/9 9:36
対応状況: 確認中
|
常連 登録日: 2020/1/9 居住地: 投稿: 69 |
受注一覧をCSVで全件出力したい [EC-CUBE] 4.0.3
[レンタルサーバ] エックスサーバー [OS] Mac OS [PHP] 7.2.27 [データベース] MySQL 5.7.27 [WEBサーバ] Apache [ブラウザ] Google Chrome、Safari ▼問題点 受注一覧の受注CSVダウンロードにて、全件出力されません。 参考URLは商品一覧のものです。 変更箇所を以下にして同じ処理を入れれば改善できると思ってますが、参考URLの内容で変更すると、エラー文が出ます。 src/Eccube/Controller/Admin/Order/OrderController.php ▼参考URL https://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=23346&forum=11 https://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=25101&forum=9&post_id=101371#forumpost101371 ▼エラー文 Fatal error: Uncaught Symfony\Component\Debug\Exception\FatalThrowableError: Parse error: syntax error, unexpected 'public' (T_PUBLIC), expecting end of file in /home/*******/***************/public_html/src/Eccube/Controller/Admin/Order/OrderController.php:740 Stack trace: #0 /home/*******/***************/public_html/vendor/composer/ClassLoader.php(322): Composer\Autoload\includeFile('/home/*******/z...') #1 [internal function]: Composer\Autoload\ClassLoader->loadClass('Eccube\\Controll...') #2 [internal function]: spl_autoload_call('Eccube\\Controll...') #3 /home/*******/***************/public_html/vendor/symfony/routing/Loader/AnnotationDirectoryLoader.php(62): ReflectionClass->__construct('Eccube\\Controll...') #4 /home/*******/***************/public_html/vendor/symfony/config/Loader/FileLoader.php(153): Symfony\Component\Routing\Loader\AnnotationDirectoryLoader->load('/home/*******/z...', 'annotation') #5 /home/*******/***************/public_html/vendor/symfony/config/Loader/FileLoader.php(90): Sym in /home/*******/***************/public_html/src/Eccube/Controller/Admin/Order/OrderController.php on line 740 原因お分かりの方いらっしゃいますでしょうか? 大変お手数ですがよろしくお願いいたします。 |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | トップ |