无法将单元格存储到缓存中

问题描述 投票:0回答:1

我正在使用多个 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*

请帮忙

caching symfony5 phpspreadsheet
1个回答
0
投票

我的 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);

无论如何,它并没有解决我的记忆问题。

© www.soinside.com 2019 - 2024. All rights reserved.