我是 RETS 导入的新手,所以我开发了这个脚本:
<?php
use Aws\Credentials\Credentials;
use Aws\S3\S3Client;
date_default_timezone_set('America/New_York');
/* --------------------------------------------------------
------- GET THE ARRAY OF SELECTED FIELDS TO INDEX FROM MLS ---
--------------------------------------------------------*/
require_once ('retsfields.php');
$filteredretsfields = array_filter( $retsfields );
/* --------------------------------------------------------
------- DATABASE ------------
--------------------------------------------------------*/
$servername = "xxx";
$username = "xxx";
$password = "xxx";
$dbname = "xxx";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
mysqli_query($conn, "SET SESSION sql_mode = ''");
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$startTime = date('Y-m-d H:i:s');
原则上代码运行良好,虽然我有一些内存问题,请参阅我在代码中的注释。我主要关心的是如何改进、加快导入过程。我需要索引的 MLS 是 Bright MLS。Bright 要求我们在我们的服务器上存储所有数据,包括图像。所以我让这段代码运行了过去 18 个小时,它导入了大约 8000 个列表和 200.000 张图片,然后由于网关错误而崩溃。
我知道这种大规模导入只需要一次(开始时),之后我可以每 x 小时进行一次部分更新。
所以我有两个问题:
我怎样才能让它更稳定,让我更容易地从这些崩溃中恢复过来,因为这意味着我每次都需要从头开始重新启动。
我怎样才能加快导入速度,因为在这个速度下,导入所有列表需要 11 天。也许我不需要保留5年的历史
我想导入没有图像的所有内容,存储图像 url,所以完整的 MLS 被索引。在我运行一个过程来一张一张地获取这些图像之后(这需要 11 天)。关于将图像导入推送到 Amazon SQS 队列的任何想法(无经验)。
非常感谢
泛舟湖上清波郎朗
慕哥9229398