/** * 为文件增加冗余备份节点 * @param $signature * @param $nodeId */ public function addReplicateNode($signature, $nodeId) { $version = MiniVersion::getInstance()->getBySignature($signature); if (!empty($version)) { $meta = FileVersionMeta::model()->find("version_id=:version_id and meta_key='store_id'", array("version_id" => $version["id"])); if (isset($meta)) { $value = $meta->meta_value; $isExist = false; $ids = explode(",", $value); foreach ($ids as $id) { if ($id === $nodeId) { $isExist = true; } } if (!$isExist) { $value .= "," . $nodeId; $meta->meta_value = $value; $meta->save(); $ids = explode(",", $value); if (count($ids) >= 3) { //整个文件冗余备份成功 PluginMiniStoreVersion::getInstance()->replicateSuccess($signature); } } } else { $meta = new FileVersionMeta(); $meta->version_id = $version["id"]; $meta->meta_value = $nodeId; $meta->save(); } } }
/** * 根据versionId删除所有记录 * @param $versionId */ public function deleteByVersionId($versionId) { FileVersionMeta::model()->deleteAll("version_id=:version_id", array("version_id" => $versionId)); }