3

made で import cronjob を実行すると、この奇妙な問題が発生します。約 400.000 製品を含む 1.5 GB の XML ファイルを処理します。スクリプトは正常に動作し、完了するまでに数時間かかりますが、約 500/600 秒後に cron-deamon から次の電子メールを受け取ります。

PHP 警告: file_get_contents(http://test.nl/admin/cron_index.php?route=module/EZImport&cron): ストリームを開くことができませんでした: HTTP 要求が失敗しました! /home/test.nl/public_html/admin/controller/tool/EZImport_cron.php 行 8 の HTTP/1.1 500 内部サーバー エラー

警告: file_get_contents(http://test.nl/admin/cron_index.php?route=module/EZImport&cron): ストリームを開くことができませんでした: HTTP 要求が失敗しました! /home/test.nl/public_html/admin/controller/tool/EZImport_cron.php 行 8 の HTTP/1.1 500 内部サーバー エラー bool(false)

私のApacheエラーログには次のように書かれています:

[Fri Nov 02 09:43:39 2012] [warn] [client 176.9..174] (104) Connection reset by peer: mod_fcgid: error reading data from FastCGI server [Fri Nov 02 09:43:39 2012] [error ] [クライアント 176.9..174] スクリプト ヘッダーの途中終了: cron_index.php

これは、cronjob によって呼び出される cron ファイルです。

    require_once('../../config.php');
    $opts = 配列('http' =>
        配列 ('タイムアウト' => 36000)
    );
    $context = stream_context_create($opts);
    $url = HTTP_SERVER."cron_index.php?route=module/cronMod&cron";
    $result = file_get_contents($url, false, $context);
    var_dump($結果);
    ダイ();

file_get_contents 経由でこの cron を実行する必要があります

環境:

DEBIAN、オープンカート

webmin (php config) の最大実行時間は 36000 秒に設定されています。

4

2 に答える 2

1

1.5GB の XML ファイルを処理します

ええと、これは少しばかげています。ドキュメントが適切に形成されていることと、悪いことが起こる可能性がたくさんあることを確認するには、少なくとも 2 つのパスが必要です。

webmin (php config) の最大実行時間は 36000 秒に設定されています

どの目的のために?

また、Web サーバーと、クライアントとサーバー間のチェーン内の他のすべてのコンポーネントのタイムアウトを構成する必要がありますが、HTTP 経由で 1.5Gb ファイルを転送しようとするのはばかげています-動作する可能性があります-しかし、それは正しい方法ではありません問題を解く。より扱いやすいチャンクに分割します。

于 2012-11-02T09:28:51.547 に答える
0

スクリプトで使用してみるset_time_limit(0)か、php.ini で時間制限を変更してください

于 2012-11-02T09:19:13.423 に答える