2015-04-10 2 views
0

J'espère que vous allez bien404 Erreur non trouvée dans un fichier de temps d'exécution important

Je suis confrontée à un problème et je n'ai pas trouvé la solution. J'ai un dossier qui contient des données de toutes les semaines et années dans la structure "données/année/semaine /" et chaque dossier contient un fichier "weekly.xml" commence de l'année 2003 à 2014. J'ai besoin de données XML fichier weekly.xml du dossier toutes les années et semaines. J'obtiens tout correctement quand j'utilise pour obtenir des données de 10 semaines de toutes les années mais quand j'augmente la taille J'ai une erreur de serveur interne avec le message "En outre, une erreur 404 Not Found a été rencontrée en essayant d'utiliser un document d'erreur request " J'ai prolongé le temps d'exécution depuis INI mais j'ai toujours des problèmes.
Lorsque j'appelle toutes les 52 semaines à partir d'une seule année, toutes les dates arrivent correctement sans aucune erreur.

Merci pour l'aide ...

Répondre

1

Normalement quand je reçois ce genre d'erreur que je reçois un HTTP 503 Internal Server Error. 404 signifie que le fichier que vous recherchez n'a pas été trouvé par votre apache ou un autre serveur.

Voici quelque chose qui a fonctionné pour moi dans le passé où j'ai réinitialisé le délai d'attente de PHP pour chaque tâche. Soyez prudent avec ce genre d'approche car vous ne voulez pas que cela se transforme en une boucle infinie.

$done = false; 
while(!$done) { 
    // Reset PHP's time limit so that you don't time out. 
    set_time_limit(30); 

    // Process single file here ... 

    if (!$isLastFile) { 
    $done = true; 
    } 
} 

Idéalement, vous allez vouloir mettre en cache les résultats des années précédentes et des mois que je pars du principe que ne changera pas. Cependant, vous devez parcourir tous ces fichiers au moins une fois pour créer un tel cache.

Je pourrais également suggérer d'utiliser une approche multi-thread en utilisant pcntl_fork si cela est disponible sur votre système d'exploitation. Check out http://php.net/manual/en/function.pcntl-fork.php

+0

J'ai mis la limite de temps à l'infini mais toujours le même problème –

+0

Votre niveau de rapport d'erreur est-il réglé yo E_ALL? Cela pourrait révéler une autre erreur qui tient le coup. Vous pouvez également inclure une section de code dans laquelle vous rencontrez ce problème. –