gpt4 book ai didi

php - 执行数据流配置文件后运行的代码

转载 作者:搜寻专家 更新时间:2023-10-31 22:14:51 24 4
gpt4 key购买 nike

通常,在执行数据流导入配置文件(针对产品)后,用户在管理控制台中发出的下一个请求将比正常请求慢得多。奇怪的是,它似乎与特定的浏览器 session 相关联。即,如果您在另一个浏览器中登录到管理控制台,系统会响应。

正在运行哪些代码或进程会减慢后续 Magento 请求的速度?我可以想到很多事情(索引、cron 等),我正在寻找将它与 session 联系起来的特定代码区域,以及该代码在做什么。

最佳答案

我的猜测是在 Parser 中有一个用于不断更新 session 的 CSV 文件循环,从好的方面来说,至少他们意识到在迭代循环中注释掉初始化模型并在之前添加它们:

class Mage_Dataflow_Model_Session_Parser_Csv extends Mage_Dataflow_Model_Convert_Parser_Abstract
{

public function parse()
{
$fDel = $this->getVar('delimiter', ',');
$fEnc = $this->getVar('enclose', '"');

if ($fDel=='\\t') {
$fDel = "\t";
}

// fixed for multibyte characters
setlocale(LC_ALL, Mage::app()->getLocale()->getLocaleCode().'.UTF-8');

$fp = tmpfile();
fputs($fp, $this->getData());
fseek($fp, 0);

$data = array();
$sessionId = Mage::registry('current_dataflow_session_id');
$import = Mage::getModel('dataflow/import');
$map = new Varien_Convert_Mapper_Column();
for ($i=0; $line = fgetcsv($fp, 4096, $fDel, $fEnc); $i++) {
if (0==$i) {
if ($this->getVar('fieldnames')) {
$fields = $line;
continue;
} else {
foreach ($line as $j=>$f) {
$fields[$j] = 'column'.($j+1);
}
}
}
$row = array();
foreach ($fields as $j=>$f) {
$row[$f] = $line[$j];
}
/*
if ($i <= 100)
{
$data[] = $row;
}
*/
//$map = new Varien_Convert_Mapper_Column();
$map->setData(array($row));
$map->map();
$row = $map->getData();
//$import = Mage::getModel('dataflow/import');
$import->setImportId(0);
$import->setSessionId($sessionId);
$import->setSerialNumber($i);
$import->setValue(serialize($row[0]));
$import->save();
//unset($import);
}

...

关于php - 执行数据流配置文件后运行的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7743232/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com