我有一個函數(shù),.md每隔幾分鐘就會在 ~8000 個文件上寫入 ~120Kb-150Kb 的 HTML 和元數(shù)據(jù),并具有固定名稱:a-agilent-technologies-healthcare-nyse-us-39d4
aa-alcoa-basic-materials-nyse-us-159
aaaau-perth-mint-physical-gold--nyse-us-8ed9
aaba-altaba-financial-services-nasdaq-us-26f5
aac-healthcare-nyse-us-e92
aaadr-advisorshares-dorsey-wright-adr--nyse-us-d842
aal-airlines-industrials-nasdaq-us-29eb如果文件不存在,它會很快生成/寫入。然而,如果文件存在,它的執(zhí)行速度會慢得多,因為現(xiàn)有文件攜帶約 150KB 數(shù)據(jù)。我該如何解決這個問題?我是否在同一目錄中生成一個具有新名稱的新文件,并在for循環(huán)中取消鏈接舊文件?還是我生成一個新文件夾并寫入所有文件然后取消鏈接上一個目錄?這種方法的問題是有時 90% 的文件被重寫,有些保持不變。代碼此函數(shù)正在for循環(huán)中調(diào)用,您可以在此鏈接中看到它public static function writeFinalStringOnDatabase($equity_symbol, $md_file_content, $no_extension_filename){ /** *@var is the MD file content with meta and entire HTML */ $md_file_content = $md_file_content . ConfigConstants::NEW_LINE . ConfigConstants::NEW_LINE; $dir = __DIR__ . ConfigConstants::DIR_FRONT_SYMBOLS_MD_FILES; // symbols front directory $new_filename = EQ::generateFileNameFromLeadingURL($no_extension_filename, $dir); if (file_exists($new_filename)) { if (is_writable($new_filename)) { file_put_contents($new_filename, $md_file_content); if (EQ::isLocalServer()) { echo $equity_symbol . " ? " . ConfigConstants::NEW_LINE; } } else { if (EQ::isLocalServer()) { echo $equity_symbol . " symbol MD file is not writable in " . __METHOD__ . " ? Maybe, check permissions!" . ConfigConstants::NEW_LINE; } } } else { $fh = fopen($new_filename, 'wb'); fwrite($fh, $md_file_content); fclose($fh); if (EQ::isLocalServer()) { echo $equity_symbol . " front md file does not exit in " . __METHOD__ . " It's writing on the database now ?" . ConfigConstants::NEW_LINE; } }}
- 1 回答
- 0 關(guān)注
- 131 瀏覽
添加回答
舉報
0/150
提交
取消