我必须在 Yii 1.1 应用程序中解析一个巨大的 csv 文件。必须验证每一行并将其保存到数据库中。我决定使用多线程来完成这项任务。
所以这是我在 Controller 操作中的代码:
public function parseData($) {
$this->content = explode("\n", $this->content);
$thread_1 = new DatalogThread(array_slice($this->content, 0, 7000));
$thread_2 = new DatalogThread(array_slice($this->content, 7001));
$thread_1->start();
$thread_2->start();
}
还有线程(我把它放在模型文件夹中):
class DatalogThread extends Thread {
public $content;
public function __construct($content) {
$this->content = $content;
}
public function run() {
foreach ($this->content as $value) {
$row = str_getcsv($value);
$datalog = new Datalog($row);
$datalog->save();
}
}
}
问题是线程无法访问模型文件:
致命错误:在 C:\xampp...\protected\models\DatalogThread.php 中找不到类“Datalog”
我尝试了 Yii::autoload("Datalog"),但得到以下错误:
致命错误:无法访问第 402 行 ...\YiiMain\framework\YiiBase.php 中的属性 Yii::$_coreClasses