バージョン選択

フォーラム

メニュー

オンライン状況

26 人のユーザが現在オンラインです。 (11 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 26
もっと...

サイト内検索

バグ報告 > フロント機能 > 受注一覧をCSVで全件出力したい

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
cro233
投稿日時: 2021/2/9 9:36
対応状況: 確認中
常連
登録日: 2020/1/9
居住地:
投稿: 64
受注一覧を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

原因お分かりの方いらっしゃいますでしょうか?
大変お手数ですがよろしくお願いいたします。
468
投稿日時: 2021/2/10 12:38
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3112
Re: 受注一覧をCSVで全件出力したい
受注データの件数が全件でどのくらいあるのか分かりませんが、
エックスサーバ(共用レンタルサーバ)を利用されている時点で使用できるメモリには上限が設けられていると思います。
リンク先にあるように6Gも使えないのではないでしょうか?

少ない件数であれば問題無くダウンロードできる状況ですか?


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

cro233
投稿日時: 2021/2/10 18:08
対応状況: 確認中
常連
登録日: 2020/1/9
居住地:
投稿: 64
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/12 20:53
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3112
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はメモリとはあまり関係がない情報になるかと思います。
今はファイルに書き出す前のメモリの利用量が問題かと思います。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

cro233
投稿日時: 2021/2/15 11:05
対応状況: 解決済
常連
登録日: 2020/1/9
居住地:
投稿: 64
Re: 受注一覧をCSVで全件出力したい
468 様
かなり詳しく疑問点についてご教示いただきありがとうございます。

おっしゃっていただいてるように共用レンタルサーバーで他の利用者に迷惑を掛けるわけにもいかないため、使用する際のみ、一時的に大きめの値にするということになりました。
その際に全件は出力できないこともあるため、期間を分割して出力することで解決できそうです。

ありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

公式ストアEC-CUBE4系デザインテンプレート続々リリース中

統計情報

総メンバー数は73,402名です
総投稿数は102,492件です

投稿数ランキング

1
seasoft
7333
2
468
3112
3
AMUAMU
2712
4
nanasess
2187
5
umebius
2036
6
yuh
1615
7
red
1454
8
h_tanaka
1140
9
tsuji
936
10
fukap
907
11
shutta
835
12
tao_s
793
13 ramrun 789
14 karin 689
15 sumida 641
16
homan
633
17 DELIGHT 572
18
patapata
502
19
flealog
485
20 tonton 437


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.