在线读取及同步更新音乐信息的方法及装置
技术领域
本发明涉及互联网领域,特别涉及一种在线读取及同步更新音乐信息的方法及装置。
背景技术
音乐推荐系统是基于用户的音乐操作流水来预估用户喜爱歌曲并进行推荐的系统。用户的音乐操作流水是指用户在例如qq音乐等音乐产品上对歌曲的单个操作(比如说收听、喜欢、收藏、设为背景音乐等)可以用一串文字来进行描述,这样的文本串的序列数据,称为用户的音乐操作流水。
在根据用户的音乐操作流水计算推荐歌曲的时候,通常需要使用到歌曲相似度(根据例如一亿条记录)、歌曲信息(根据例如一百万条记录)、歌手信息(根据例如二万条记录)等音乐信息,这些信息目前在推荐的服务器上使用内存存储,一般需要每天更新一次。但是,每天更新音乐信息的时候都要停止,将新的音乐信息导入内存后再启动服务程序,这样在更新音乐信息的时间段内就无法向用户推荐热门歌曲或者用户得到的歌曲并不是根据当时的音乐信息计算出来的,很有可能会不符合用户的喜好。
发明内容
本发明的目的在于,提供一种在更新音乐信息的同时不需要停止音乐推荐服务的在线读取及同步更新音乐信息的方法及装置。
本发明的目的及解决其技术问题是采用以下技术方案来实现的。
一种在线读取及同步更新音乐信息的方法,包括:设置两个内存配置块及一个标志位,其中一个内存配置块用于在线提供音乐信息读取服务,另一个内存配置块用于在线提供音乐信息更新服务,该标志位用于指向该两个内存配置块中当前状态为正在提供服务的内存配置块;利用该标志位查找两个内存配置块中当前状态为正在提供服务的内存配置块,于该正在提供服务的内存配置块中读取音乐信息;利用该标志位查找两个内存配置块中当前状态为空闲的内存配置块,于该空闲的内存配置块中加载新的音乐信息。
一种在线读取及同步更新音乐信息的装置,包括:设置模块,用于设置两个内存配置块及一个标志位,其中一个内存配置块用于在线提供音乐信息读取服务,另一个内存配置块用于在线提供音乐信息更新服务,该标志位用于指向该两个内存配置块中当前状态为正在提供服务的内存配置块;读取模块,利用该标志位查找两个内存配置块中当前状态为正在提供服务的内存配置块,于该正在提供服务的内存配置块中读取音乐信息;加载模块,利用该标志位查找两个内存配置块中当前状态为空闲的内存配置块,于该空闲的内存配置块中加载新的音乐信息。
本发明通过设置两个内存配置块及一个标志位,其中一个内存配置块用于在线提供音乐信息读取服务,另一个内存配置块用于在线提供音乐信息更新服务,利用该标志位查找两个内存配置块中当前状态为正在提供服务的内存配置块,于该正在提供服务的内存配置块中读取音乐信息,利用该标志位查找两个内存配置块中当前状态为空闲的内存配置块,于该空闲的内存配置块中加载新的音乐信息,使得在更新音乐信息时,系统仍然可以读取音乐信息进行音乐推荐,也就是说在更新音乐信息的同时不需要停止音乐推荐服务,可以提升用户体验度。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例1提供的一种在线读取及同步更新音乐信息的方法的流程图。
图2是本发明实施例2提供的一种在线读取及同步更新音乐信息的方法的流程图。
图3是本发明实施例3提供的一种在线读取及同步更新音乐信息的方法的流程图。
图4是本发明实施例4提供的一种在线读取及同步更新音乐信息的装置的结构图。
图5是本发明实施例5提供的一种在线读取及同步更新音乐信息的装置的结构图。
图6是本发明实施例6提供的一种在线读取及同步更新音乐信息的装置的结构图。
具体实施方式
为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的在线读取及同步更新音乐信息的方法及装置其具体实施方式、方法、步骤、结构、特征及其功效,详细说明如下。
有关本发明的前述及其他技术内容、特点及功效,在以下配合参考图式的较佳实施例的详细说明中将可清楚呈现。通过具体实施方式的说明,当可对本发明为达成预定目的所采取的技术手段及功效得以更加深入且具体的了解,然而所附图式仅是提供参考与说明之用,并非用来对本发明加以限制。
实施例1
参考图1,图1是本发明实施例1提供的一种在线读取及同步更新音乐信息的方法的流程图。于本实施例中,在线读取及同步更新音乐信息的方法包括:
步骤S11:设置两个内存配置块及一个标志位,其中一个内存配置块用于在线提供音乐信息读取服务,另一个内存配置块用于在线提供音乐信息更新服务,该标志位用于指向该两个内存配置块中当前状态为正在提供服务的内存配置块。
该两个内存配置块例如为两块同样结构的内存,一块用于在线提供音乐信息读取服务,另一块用于在线提供音乐信息更新服务,该两个内存配置块也可以为同一内存的两块空间,能够通过不同的地址进行区分。音乐信息指的是包括歌曲相似度、歌曲信息、歌手信息等在内的信息。于此步骤中,所有的服务进程和音乐信息更新都共同操作同一份内存数据。标志位用于区分当前哪个内存配置块正在提供服务。
步骤S12:利用该标志位查找两个内存配置块中当前状态为正在提供服务的内存配置块,于该正在提供服务的内存配置块中读取音乐信息。
步骤S13:利用该标志位查找两个内存配置块中当前状态为空闲的内存配置块,于该空闲的内存配置块中加载新的音乐信息。
本实施例提供的在线读取及同步更新音乐信息的方法,通过设置两个内存配置块及一个标志位,其中一个内存配置块用于在线提供音乐信息读取服务,另一个内存配置块用于在线提供音乐信息更新服务,利用该标志位查找两个内存配置块中当前状态为正在提供服务的内存配置块,于该正在提供服务的内存配置块中读取音乐信息,利用该标志位查找两个内存配置块中当前状态为空闲的内存配置块,于该空闲的内存配置块中加载新的音乐信息,使得在更新音乐信息时,系统仍然可以读取音乐信息进行音乐推荐,也就是说在更新音乐信息的同时不需要停止音乐推荐服务,可以提升用户体验度。
实施例2
参考图2,图2是本发明实施例2提供的一种在线读取及同步更新音乐信息的方法的流程图。于本实施例中,在线读取及同步更新音乐信息的方法包括:
步骤S21:设置两个内存配置块及一个标志位,其中一个内存配置块用于在线提供音乐信息读取服务,另一个内存配置块用于在线提供音乐信息更新服务,该标志位用于指向该两个内存配置块中当前状态为正在提供服务的内存配置块。此步骤与前述相同,这里不再赘述。
步骤S22:利用该标志位查找两个内存配置块中当前状态为正在提供服务的内存配置块,于该正在提供服务的内存配置块中读取音乐信息。
于本实施例中,步骤S22进一步包括:
步骤S221:查询该标志位,判断该标志位所指向的内存配置块为该两个内存配置块中的哪个内存配置块。
步骤S222:于该标志位所指向的内存配置块中读取音乐信息。
步骤S23:利用该标志位查找两个内存配置块中当前状态为空闲的内存配置块,于该空闲的内存配置块中加载新的音乐信息。
本实施例提供的在线读取及同步更新音乐信息的方法,通过设置两个内存配置块及一个标志位,其中一个内存配置块用于在线提供音乐信息读取服务,另一个内存配置块用于在线提供音乐信息更新服务,利用该标志位查找两个内存配置块中当前状态为正在提供服务的内存配置块,于该正在提供服务的内存配置块中读取音乐信息,利用该标志位查找两个内存配置块中当前状态为空闲的内存配置块,于该空闲的内存配置块中加载新的音乐信息,使得在更新音乐信息时,系统仍然可以读取音乐信息进行音乐推荐,也就是说在更新音乐信息的同时不需要停止音乐推荐服务,可以提升用户体验度。
实施例3
参考图3,图3是本发明实施例3提供的一种在线读取及同步更新音乐信息的方法的流程图。于本实施例中,在线读取及同步更新音乐信息的方法包括:
步骤S31:设置两个内存配置块及一个标志位,其中一个内存配置块用于在线提供音乐信息读取服务,另一个内存配置块用于在线提供音乐信息更新服务,该标志位用于指向该两个内存配置块中当前状态为正在提供服务的内存配置块。此步骤与前述相同,这里不再赘述。
步骤S32:利用该标志位查找两个内存配置块中当前状态为正在提供服务的内存配置块,于该正在提供服务的内存配置块中读取音乐信息。
步骤S33:利用该标志位查找两个内存配置块中当前状态为空闲的内存配置块,于该空闲的内存配置块中加载新的音乐信息。
于本实施例中,步骤S33包括:
步骤S331:查询该标志位,判断该标志位未指向的内存配置块为该两个内存配置块中的哪个内存配置块;
步骤S332:于该标志位未指向的内存配置块中加载新的音乐信息。
进一步的,步骤S33还可以包括:
步骤S333:判断是否成功地于该标志位未指向的内存配置块中加载新的音乐信息;
如果是,则进行步骤S334:修改该标志位,将该标志位修改为指向该成功加载了新的音乐信息的内存配置块;
如果否,则进行步骤S335:发出警告。
当加载完新的音乐信息后,标志位使用原子操作更改为指向该成功加载了新的音乐信息的内存配置块。原子操作指不会被打断的操作,原子操作一旦开始就会一直运行到结束。同时,采用原子操作也避免读取到脏数据,脏数据是指系统在修改标志位状态时出现的中间状态,例如由状态A变到状态B的时候,有可能会出现C这个状态值,C这个状态值就是所谓的脏数据。
本实施例提供的在线读取及同步更新音乐信息的方法,通过设置两个内存配置块及一个标志位,其中一个内存配置块用于在线提供音乐信息读取服务,另一个内存配置块用于在线提供音乐信息更新服务,利用该标志位查找两个内存配置块中当前状态为正在提供服务的内存配置块,于该正在提供服务的内存配置块中读取音乐信息,利用该标志位查找两个内存配置块中当前状态为空闲的内存配置块,于该空闲的内存配置块中加载新的音乐信息,使得在更新音乐信息时,系统仍然可以读取音乐信息进行音乐推荐,也就是说在更新音乐信息的同时不需要停止音乐推荐服务,可以提升用户体验度。
实施例4
参考图4,图4是本发明实施例4提供的一种在线读取及同步更新音乐信息的装置的结构图。于本实施例中,在线读取及同步更新音乐信息的装置40包括:设置模块41、读取模块42以及加载模块43。
设置模块41用于设置两个内存配置块及一个标志位,其中一个内存配置块用于在线提供音乐信息读取服务,另一个内存配置块用于在线提供音乐信息更新服务,该标志位用于指向该两个内存配置块中当前状态为正在提供服务的内存配置块。
读取模块42利用该标志位查找两个内存配置块中当前状态为正在提供服务的内存配置块,于该正在提供服务的内存配置块中读取音乐信息。
加载模块43利用该标志位查找两个内存配置块中当前状态为空闲的内存配置块,于该空闲的内存配置块中加载新的音乐信息。
本实施例提供的在线读取及同步更新音乐信息的装置,通过设置两个内存配置块及一个标志位,其中一个内存配置块用于在线提供音乐信息读取服务,另一个内存配置块用于在线提供音乐信息更新服务,利用该标志位查找两个内存配置块中当前状态为正在提供服务的内存配置块,于该正在提供服务的内存配置块中读取音乐信息,利用该标志位查找两个内存配置块中当前状态为空闲的内存配置块,于该空闲的内存配置块中加载新的音乐信息,使得在更新音乐信息时,系统仍然可以读取音乐信息进行音乐推荐,也就是说在更新音乐信息的同时不需要停止音乐推荐服务,可以提升用户体验度。
实施例5
参考图5,图5是本发明实施例5提供的一种在线读取及同步更新音乐信息的装置的结构图。于本实施例中,在线读取及同步更新音乐信息的装置50包括:设置模块51、读取模块52以及加载模块53。于本实施例中,读取模块52包括第一查询模块521以及读取子模块522
设置模块51用于设置两个内存配置块及一个标志位,其中一个内存配置块用于在线提供音乐信息读取服务,另一个内存配置块用于在线提供音乐信息更新服务,该标志位用于指向该两个内存配置块中当前状态为正在提供服务的内存配置块。
读取模块52利用该标志位查找两个内存配置块中当前状态为正在提供服务的内存配置块,于该正在提供服务的内存配置块中读取音乐信息。第一查询模块521用于查询该标志位,判断该标志位所指向的内存配置块为该两个内存配置块中的哪个内存配置块;读取子模块522用于在该标志位所指向的内存配置块中读取音乐信息。
加载模块53利用该标志位查找两个内存配置块中当前状态为空闲的内存配置块,于该空闲的内存配置块中加载新的音乐信息。
本实施例提供的在线读取及同步更新音乐信息的装置,通过设置两个内存配置块及一个标志位,其中一个内存配置块用于在线提供音乐信息读取服务,另一个内存配置块用于在线提供音乐信息更新服务,利用该标志位查找两个内存配置块中当前状态为正在提供服务的内存配置块,于该正在提供服务的内存配置块中读取音乐信息,利用该标志位查找两个内存配置块中当前状态为空闲的内存配置块,于该空闲的内存配置块中加载新的音乐信息,使得在更新音乐信息时,系统仍然可以读取音乐信息进行音乐推荐,也就是说在更新音乐信息的同时不需要停止音乐推荐服务,可以提升用户体验度。
实施例6
参考图6,图6是本发明实施例6提供的一种在线读取及同步更新音乐信息的装置的结构图。于本实施例中,在线读取及同步更新音乐信息的装置60包括:设置模块61、读取模块62以及加载模块63。于本实施例中,加载模块63包括第二查询模块631、加载子模块632。加载模块63进一步还可以包括:判断模块633、修改模块634、报警模块635。
设置模块61用于设置两个内存配置块及一个标志位,其中一个内存配置块用于在线提供音乐信息读取服务,另一个内存配置块用于在线提供音乐信息更新服务,该标志位用于指向该两个内存配置块中当前状态为正在提供服务的内存配置块。
读取模块62利用该标志位查找两个内存配置块中当前状态为正在提供服务的内存配置块,于该正在提供服务的内存配置块中读取音乐信息。
加载模块63利用该标志位查找两个内存配置块中当前状态为空闲的内存配置块,于该空闲的内存配置块中加载新的音乐信息。第二查询模块631用于查询该标志位,判断该标志位未指向的内存配置块为该两个内存配置块中的哪个内存配置块;加载子模块632,用于在该标志位未指向的内存配置块中加载新的音乐信息。判断模块633用于判断是否成功地于该标志位未指向的内存配置块中加载新的音乐信息;修改模块634用于在判断模块判断结果为是时修改该标志位,将该标志位修改为指向该成功加载了新的音乐信息的内存配置块;报警模块635用于在判断模块判断结果为否时发出警告。
本实施例提供的在线读取及同步更新音乐信息的装置,通过设置两个内存配置块及一个标志位,其中一个内存配置块用于在线提供音乐信息读取服务,另一个内存配置块用于在线提供音乐信息更新服务,利用该标志位查找两个内存配置块中当前状态为正在提供服务的内存配置块,于该正在提供服务的内存配置块中读取音乐信息,利用该标志位查找两个内存配置块中当前状态为空闲的内存配置块,于该空闲的内存配置块中加载新的音乐信息,使得在更新音乐信息时,系统仍然可以读取音乐信息进行音乐推荐,也就是说在更新音乐信息的同时不需要停止音乐推荐服务,可以提升用户体验度。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者装置中还存在另外的相同要素。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。