3
通常,在执行数据流导入配置文件(针对产品)后,用户在管理控制台中执行的下一个请求通常会比正常请求慢很多。奇怪的是,它似乎与特定的浏览器会话有关。即如果您在另一个浏览器中登录到管理控制台,系统会响应。什么代码在执行数据流配置文件后运行
运行哪些代码或进程会减慢后续的Magento请求?我可以想象它可能会有十几件事(索引,cron等),我正在寻找与会话相关的代码的特定区域,以及代码正在做什么。
通常,在执行数据流导入配置文件(针对产品)后,用户在管理控制台中执行的下一个请求通常会比正常请求慢很多。奇怪的是,它似乎与特定的浏览器会话有关。即如果您在另一个浏览器中登录到管理控制台,系统会响应。什么代码在执行数据流配置文件后运行
运行哪些代码或进程会减慢后续的Magento请求?我可以想象它可能会有十几件事(索引,cron等),我正在寻找与会话相关的代码的特定区域,以及代码正在做什么。
我的猜测是解析器有一个for循环在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);
}
...
我一直想知道关于这个问题,好,我知道它的导入后重新编制。 –
直接上传文件或引用服务器上的位置? – B00MER
@ B00Mer,似乎是/或。 –