我正在使用多个 csv 文件来填充数据库中的表。 当我在 Symfony 上时,我创建了一个命令,该命令从给定目录按定义的顺序读取文件。
一个 csv 文件相当于我的 BD 中的一个表格。
文件大小因文件而异,可能包含超过 65,000 行。
我的脚本已经在本地运行了3天,虽然有进展,但是很重。
在菜谱服务器上,我的脚本在几分钟后停止,显示此错误:
严重:运行命令“symfony-command-name”时抛出错误。消息:“无法在缓存中存储单元格 BB18118”{“异常”:“[对象](PhpOffice \ PhpSpreadsheet \ 异常(代码:0):无法在项目/供应商/ phpoffice / phpspreadsheet / src /的缓存中存储单元格 BB18118 PhpSpreadsheet/集合/Cells.php:393)
我正在使用 Symfony FileSystemAdapter、SimpleCacheBridge (1.1)
在我的 Symfony 命令中我这样做:
$pool = new FilesystemAdapter();
$simpleCache = new SimpleCacheBridge($pool);
Settings::setCache($simpleCache); // PhpOffice\PhpSpreadsheet\Settings
// loop directories and call Symfony service ...
在 Symfony 服务中:
$spreadSheet = IOFactory::load($csvPath);
$sheet = $spreadSheet->getActiveSheet()->toArray();
// loop sheet and databases operations ...
PHP:7.4 顺丰:5.3.9 php电子表格:1.18 简单缓存:1.1*
请帮忙
我的 symfony 缓存是这样工作的:
composer require symfony/cache
代码
use Symfony\Component\Cache\Adapter\FilesystemAdapter;
use Symfony\Component\Cache\Psr16Cache;
$cache = new FilesystemAdapter();
$psr16Cache = new Psr16Cache($cache);
Settings::setCache($psr16Cache);
无论如何,它并没有解决我的记忆问题。