国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Lors de l'importation de fichiers Excel dans Laravel, la quantité de données est trop importante et le serveur re?oit souvent 500 requêtes. Que dois-je faire ?
我想大聲告訴你
我想大聲告訴你 2017-05-16 16:48:23
0
3
932

Grace à l'extension Laravel Excel, comment importer rapidement plus de 10 000 données Excel sans modifier la configuration du serveur sans signaler 500 erreurs, merci

我想大聲告訴你
我想大聲告訴你

répondre à tous(3)
PHPzhong

Cette situation se produit généralement lorsque l'utilisation de la mémoire dépasse la configuration maximale autorisée de PHP ou que le temps d'exécution est trop long et expire. Si vous utilisez directement l'extension Excel Laravel et importez en fonction du téléchargement Web, le délai d'attente expirera définitivement et dépassera la limite de taille de la mémoire.

La solution consiste à utiliser les taches planifiées ou les files d'attente de taches de Laravel.

  • Taches chronométrées

    上傳文件后,定時任務(wù)去檢查是否有新上傳的文件,如果有就執(zhí)行導(dǎo)入處理。
    
  • File d'attente des taches

    上傳文件后,發(fā)布一個異步事件,由任務(wù)listener去異步處理excel內(nèi)容的導(dǎo)入。
    

    Une fois l'importation finale terminée, écrivez les résultats de l'importation dans la base de données ou dans d'autres méthodes de stockage, afin que l'importation de données asynchrone ne provoque pas d'erreurs dues à la mémoire ou au délai d'attente.

曾經(jīng)蠟筆沒有小新

C'est normal. Rencontrez-le souvent. J'ai donc développé une extension.
https://git.oschina.net/xavie...
https://github.com/xavieryang...

Le problème avec l'importation de xls par PHP est très grave, car xlsx est un package compressé plus XML, il est meilleur que xls. Xls est un fichier binaire qui doit être complètement chargé avant de pouvoir être analysé, et l'analyse est relativement compliquée. Le PHPEXCEL actuellement populaire est très lent dans le traitement des xls, et il échoue souvent lors de l'importation de xls.

巴扎黑

Vous n'avez pas besoin de lire les éléments 1W dans la mémoire à la fois. Lisez-les un par un et enregistrez-les un par un

.
function getRows($file)
{
    $handle = fopen($file, 'rb');
    if (!$handle) {
        throw new Exception();
    }
    while (!feof($handle)) {
        yield fgetcsv($handle);
    }
    fclose($handle);
}


foreach (getRows('data.csv') as $k) {

}
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal