/** * 静态方法, 单例统一访问入口 * @return object 返回对象的唯一实例 */ public static function getInstance() { if (is_null(self::$_instance) || !isset(self::$_instance)) { self::$_instance = new self(); } return self::$_instance; }
/** * 冗余备份报俊 * @param string $signature 文件hash值 * @param string $nodeId 迷你存储ID * @return array */ public function replicateReport($signature, $nodeId) { //冗余备份成功,为miniyun_file_version_metas.meta_value新增冗余的节点 PluginMiniStoreVersionMeta::getInstance()->addReplicateNode($signature, $nodeId); //修改存储节点的miniyun_store_node.save_file_count+=1 PluginMiniStoreNode::getInstance()->newUploadFile($nodeId); //删除冗余备份的任务 PluginMiniReplicateTask::getInstance()->delete($signature, $nodeId); return array("success" => true); }
/** * 场景1:把文件做至多3份备份 * 使用方式:每隔1分钟执行一次 */ public function actionReplicateFile() { $count = PluginMiniReplicateTask::getInstance()->replicateFile(); echo "本次备份文件有:" . $count . "个\n"; }