ting_model 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (229) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +4 -0
  3. data/README.md +41 -0
  4. data/Rakefile +1 -0
  5. data/gen_shards.rb +59 -0
  6. data/lib/extenders/album_extender.rb +9 -0
  7. data/lib/extenders/block_avatar_extender.rb +5 -0
  8. data/lib/extenders/chat_extender.rb +5 -0
  9. data/lib/extenders/class_node.rb +21 -0
  10. data/lib/extenders/comment_extender.rb +5 -0
  11. data/lib/extenders/favorite_album_extender.rb +5 -0
  12. data/lib/extenders/favorite_extender.rb +5 -0
  13. data/lib/extenders/following_extender.rb +13 -0
  14. data/lib/extenders/following_group_extender.rb +5 -0
  15. data/lib/extenders/following_tag_extender.rb +5 -0
  16. data/lib/extenders/followingx2_group_extender.rb +5 -0
  17. data/lib/extenders/inbox_extender.rb +5 -0
  18. data/lib/extenders/linkman_extender.rb +5 -0
  19. data/lib/extenders/outbox_extender.rb +5 -0
  20. data/lib/extenders/track_block_extender.rb +5 -0
  21. data/lib/extenders/track_extender.rb +5 -0
  22. data/lib/extenders/track_in_record_extender.rb +76 -0
  23. data/lib/extenders/track_picture_extender.rb +5 -0
  24. data/lib/extenders/track_record_extender.rb +5 -0
  25. data/lib/extenders/track_rich_extender.rb +5 -0
  26. data/lib/extenders/track_set_extender.rb +79 -0
  27. data/lib/extenders/track_set_rich_extender.rb +5 -0
  28. data/lib/extenders/user_tag_extender.rb +5 -0
  29. data/lib/ting_model.rb +1 -0
  30. data/lib/ting_model/advertisement.rb +5 -0
  31. data/lib/ting_model/advertisement_new.rb +4 -0
  32. data/lib/ting_model/album.rb +31 -0
  33. data/lib/ting_model/album_node.rb +9 -0
  34. data/lib/ting_model/album_origin.rb +137 -0
  35. data/lib/ting_model/album_pod.rb +8 -0
  36. data/lib/ting_model/album_podcat.rb +8 -0
  37. data/lib/ting_model/android_channel.rb +4 -0
  38. data/lib/ting_model/android_channel_binding.rb +7 -0
  39. data/lib/ting_model/announcement.rb +12 -0
  40. data/lib/ting_model/app_recommend.rb +55 -0
  41. data/lib/ting_model/application_v_category.rb +5 -0
  42. data/lib/ting_model/approve_group.rb +4 -0
  43. data/lib/ting_model/approving_track.rb +4 -0
  44. data/lib/ting_model/approving_track_log.rb +4 -0
  45. data/lib/ting_model/audit_log.rb +5 -0
  46. data/lib/ting_model/baidu_count.rb +4 -0
  47. data/lib/ting_model/bind_user.rb +7 -0
  48. data/lib/ting_model/binding_app.rb +4 -0
  49. data/lib/ting_model/biting.rb +4 -0
  50. data/lib/ting_model/black_user.rb +9 -0
  51. data/lib/ting_model/block_avatar.rb +31 -0
  52. data/lib/ting_model/block_avatar_node.rb +10 -0
  53. data/lib/ting_model/block_avatar_origin.rb +24 -0
  54. data/lib/ting_model/category.rb +20 -0
  55. data/lib/ting_model/category_icon_version.rb +12 -0
  56. data/lib/ting_model/chat.rb +31 -0
  57. data/lib/ting_model/chat_node.rb +10 -0
  58. data/lib/ting_model/chat_origin.rb +32 -0
  59. data/lib/ting_model/comment.rb +80 -0
  60. data/lib/ting_model/comment_node.rb +10 -0
  61. data/lib/ting_model/comment_origin.rb +116 -0
  62. data/lib/ting_model/dead_album.rb +8 -0
  63. data/lib/ting_model/dead_track.rb +8 -0
  64. data/lib/ting_model/dead_user.rb +7 -0
  65. data/lib/ting_model/default_follow.rb +6 -0
  66. data/lib/ting_model/delayed_album.rb +26 -0
  67. data/lib/ting_model/delayed_publish.rb +4 -0
  68. data/lib/ting_model/delayed_track.rb +43 -0
  69. data/lib/ting_model/discovery_page.rb +17 -0
  70. data/lib/ting_model/editor_recommend.rb +5 -0
  71. data/lib/ting_model/favorite.rb +59 -0
  72. data/lib/ting_model/favorite_album.rb +50 -0
  73. data/lib/ting_model/favorite_album_node.rb +9 -0
  74. data/lib/ting_model/favorite_album_origin.rb +88 -0
  75. data/lib/ting_model/favorite_node.rb +10 -0
  76. data/lib/ting_model/favorite_origin.rb +138 -0
  77. data/lib/ting_model/feed.rb +159 -0
  78. data/lib/ting_model/file_upload.rb +4 -0
  79. data/lib/ting_model/file_upload_record.rb +4 -0
  80. data/lib/ting_model/focus.rb +16 -0
  81. data/lib/ting_model/focus_album.rb +9 -0
  82. data/lib/ting_model/focus_current.rb +10 -0
  83. data/lib/ting_model/focus_track.rb +17 -0
  84. data/lib/ting_model/focus_user.rb +7 -0
  85. data/lib/ting_model/follower.rb +27 -0
  86. data/lib/ting_model/follower_node.rb +10 -0
  87. data/lib/ting_model/follower_origin.rb +34 -0
  88. data/lib/ting_model/follower_tag.rb +27 -0
  89. data/lib/ting_model/follower_tag_node.rb +10 -0
  90. data/lib/ting_model/follower_tag_origin.rb +14 -0
  91. data/lib/ting_model/followerx2_group.rb +27 -0
  92. data/lib/ting_model/followerx2_group_node.rb +10 -0
  93. data/lib/ting_model/followerx2_group_origin.rb +12 -0
  94. data/lib/ting_model/following.rb +57 -0
  95. data/lib/ting_model/following_group.rb +31 -0
  96. data/lib/ting_model/following_group_node.rb +10 -0
  97. data/lib/ting_model/following_group_origin.rb +29 -0
  98. data/lib/ting_model/following_node.rb +10 -0
  99. data/lib/ting_model/following_origin.rb +72 -0
  100. data/lib/ting_model/following_tag.rb +52 -0
  101. data/lib/ting_model/following_tag_node.rb +10 -0
  102. data/lib/ting_model/following_tag_origin.rb +59 -0
  103. data/lib/ting_model/followingx2_group.rb +31 -0
  104. data/lib/ting_model/followingx2_group_node.rb +10 -0
  105. data/lib/ting_model/followingx2_group_origin.rb +23 -0
  106. data/lib/ting_model/human_category.rb +17 -0
  107. data/lib/ting_model/human_recommend_album.rb +8 -0
  108. data/lib/ting_model/human_recommend_album_category_tag.rb +4 -0
  109. data/lib/ting_model/human_recommend_album_tag.rb +4 -0
  110. data/lib/ting_model/human_recommend_category_album.rb +7 -0
  111. data/lib/ting_model/human_recommend_category_tag.rb +6 -0
  112. data/lib/ting_model/human_recommend_category_tag_album.rb +7 -0
  113. data/lib/ting_model/human_recommend_category_tag_track.rb +11 -0
  114. data/lib/ting_model/human_recommend_category_tag_user.rb +7 -0
  115. data/lib/ting_model/human_recommend_category_track.rb +11 -0
  116. data/lib/ting_model/human_recommend_category_user.rb +7 -0
  117. data/lib/ting_model/human_recommend_tag.rb +5 -0
  118. data/lib/ting_model/human_recommend_tag_album.rb +7 -0
  119. data/lib/ting_model/human_recommend_tag_track.rb +9 -0
  120. data/lib/ting_model/human_recommend_tag_user.rb +7 -0
  121. data/lib/ting_model/human_recommend_track.rb +9 -0
  122. data/lib/ting_model/human_recommend_user.rb +7 -0
  123. data/lib/ting_model/icon_version.rb +7 -0
  124. data/lib/ting_model/inbox.rb +31 -0
  125. data/lib/ting_model/inbox_node.rb +10 -0
  126. data/lib/ting_model/inbox_origin.rb +59 -0
  127. data/lib/ting_model/latest_album.rb +9 -0
  128. data/lib/ting_model/latest_favorite.rb +10 -0
  129. data/lib/ting_model/latest_track.rb +10 -0
  130. data/lib/ting_model/linkman.rb +30 -0
  131. data/lib/ting_model/linkman_node.rb +10 -0
  132. data/lib/ting_model/linkman_origin.rb +26 -0
  133. data/lib/ting_model/liteapp.rb +7 -0
  134. data/lib/ting_model/liteapp_album.rb +4 -0
  135. data/lib/ting_model/liteapp_tag.rb +4 -0
  136. data/lib/ting_model/lover.rb +27 -0
  137. data/lib/ting_model/lover_album.rb +27 -0
  138. data/lib/ting_model/lover_album_node.rb +9 -0
  139. data/lib/ting_model/lover_album_origin.rb +39 -0
  140. data/lib/ting_model/lover_node.rb +10 -0
  141. data/lib/ting_model/lover_origin.rb +45 -0
  142. data/lib/ting_model/m_user.rb +8 -0
  143. data/lib/ting_model/message_log.rb +4 -0
  144. data/lib/ting_model/message_picture.rb +5 -0
  145. data/lib/ting_model/meta.rb +4 -0
  146. data/lib/ting_model/mixing_album.rb +7 -0
  147. data/lib/ting_model/mobad_stat.rb +9 -0
  148. data/lib/ting_model/news.rb +16 -0
  149. data/lib/ting_model/out_link.rb +7 -0
  150. data/lib/ting_model/outbox.rb +31 -0
  151. data/lib/ting_model/outbox_node.rb +10 -0
  152. data/lib/ting_model/outbox_origin.rb +59 -0
  153. data/lib/ting_model/outlink_stat.rb +4 -0
  154. data/lib/ting_model/personal_setting.rb +26 -0
  155. data/lib/ting_model/push_message.rb +4 -0
  156. data/lib/ting_model/receive_laya.rb +9 -0
  157. data/lib/ting_model/recommend_album.rb +7 -0
  158. data/lib/ting_model/recommend_category_album.rb +7 -0
  159. data/lib/ting_model/recommend_category_tag.rb +5 -0
  160. data/lib/ting_model/recommend_category_tag_album.rb +7 -0
  161. data/lib/ting_model/recommend_category_tag_track.rb +9 -0
  162. data/lib/ting_model/recommend_category_tag_user.rb +7 -0
  163. data/lib/ting_model/recommend_category_track.rb +9 -0
  164. data/lib/ting_model/recommend_category_user.rb +7 -0
  165. data/lib/ting_model/recommend_tag.rb +15 -0
  166. data/lib/ting_model/recommend_tag_album.rb +7 -0
  167. data/lib/ting_model/recommend_tag_track.rb +9 -0
  168. data/lib/ting_model/recommend_tag_user.rb +7 -0
  169. data/lib/ting_model/recommend_track.rb +9 -0
  170. data/lib/ting_model/recommend_user.rb +7 -0
  171. data/lib/ting_model/reject_reason.rb +17 -0
  172. data/lib/ting_model/report.rb +33 -0
  173. data/lib/ting_model/report_information.rb +29 -0
  174. data/lib/ting_model/search_black_uid.rb +7 -0
  175. data/lib/ting_model/search_key.rb +6 -0
  176. data/lib/ting_model/send_msg.rb +4 -0
  177. data/lib/ting_model/shards.rb +2626 -0
  178. data/lib/ting_model/sms.rb +19 -0
  179. data/lib/ting_model/special.rb +17 -0
  180. data/lib/ting_model/special_album.rb +4 -0
  181. data/lib/ting_model/special_track.rb +4 -0
  182. data/lib/ting_model/sub_app_advertisement_new.rb +4 -0
  183. data/lib/ting_model/subappad_stat.rb +9 -0
  184. data/lib/ting_model/system_configuration.rb +5 -0
  185. data/lib/ting_model/temp_blob.rb +5 -0
  186. data/lib/ting_model/track.rb +30 -0
  187. data/lib/ting_model/track_block.rb +46 -0
  188. data/lib/ting_model/track_block_node.rb +10 -0
  189. data/lib/ting_model/track_block_origin.rb +69 -0
  190. data/lib/ting_model/track_in_record.rb +27 -0
  191. data/lib/ting_model/track_in_record_node.rb +10 -0
  192. data/lib/ting_model/track_in_record_origin.rb +134 -0
  193. data/lib/ting_model/track_node.rb +9 -0
  194. data/lib/ting_model/track_origin.rb +224 -0
  195. data/lib/ting_model/track_picture.rb +32 -0
  196. data/lib/ting_model/track_picture_node.rb +10 -0
  197. data/lib/ting_model/track_picture_origin.rb +26 -0
  198. data/lib/ting_model/track_record.rb +31 -0
  199. data/lib/ting_model/track_record_node.rb +9 -0
  200. data/lib/ting_model/track_record_origin.rb +64 -0
  201. data/lib/ting_model/track_rich.rb +30 -0
  202. data/lib/ting_model/track_rich_node.rb +10 -0
  203. data/lib/ting_model/track_rich_origin.rb +31 -0
  204. data/lib/ting_model/track_set.rb +27 -0
  205. data/lib/ting_model/track_set_node.rb +9 -0
  206. data/lib/ting_model/track_set_origin.rb +147 -0
  207. data/lib/ting_model/track_set_rich.rb +30 -0
  208. data/lib/ting_model/track_set_rich_node.rb +10 -0
  209. data/lib/ting_model/track_set_rich_origin.rb +24 -0
  210. data/lib/ting_model/uid_approve_group.rb +4 -0
  211. data/lib/ting_model/upload_track_share_temp.rb +6 -0
  212. data/lib/ting_model/user_link.rb +10 -0
  213. data/lib/ting_model/user_log.rb +33 -0
  214. data/lib/ting_model/user_tag.rb +31 -0
  215. data/lib/ting_model/user_tag_node.rb +10 -0
  216. data/lib/ting_model/user_tag_origin.rb +23 -0
  217. data/lib/ting_model/user_v_category.rb +8 -0
  218. data/lib/ting_model/v_application.rb +35 -0
  219. data/lib/ting_model/v_category.rb +7 -0
  220. data/lib/ting_model/v_user.rb +7 -0
  221. data/lib/ting_model/varification_code.rb +6 -0
  222. data/lib/ting_model/web_advertisement.rb +6 -0
  223. data/lib/ting_model/web_discovery_page.rb +10 -0
  224. data/lib/ting_model/web_recommend.rb +6 -0
  225. data/lib/ting_model/weixin_account.rb +8 -0
  226. data/lib/ting_model/weixin_keyword.rb +4 -0
  227. data/lib/ting_model/weixin_monitor.rb +4 -0
  228. data/ting_model.gemspec +251 -0
  229. metadata +313 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: fce7e9624c7436fdeec00b84c957218d4103b3ef
4
+ data.tar.gz: 130feafca1025d4a58920b80a767c9f01e3c8cad
5
+ SHA512:
6
+ metadata.gz: af2468f83f499d2900c6af94a2beba710a48ae1e575953c78daf1efad933fb39c8a423808fd6634a4f4e11144a67026d4bee72024811b82f1d310d0afb2dcdf1
7
+ data.tar.gz: 059bd1dc8488af1d4518d3d5c0aed21f608c20d20ad4e1f7c801b38d0217395908d563ebbf0421d9e861387158520de4eaff3cf955fcd1a91259bab3939e4caa
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'http://ruby.taobao.org'
2
+
3
+ # Specify your gem's dependencies in stzjb_server.gemspec
4
+ gemspec
data/README.md ADDED
@@ -0,0 +1,41 @@
1
+ changelog:
2
+
3
+ 0.1.3 xunch cache extender
4
+ 0.1.2 add special, android_channel
5
+ 0.1.1 add followerx2_group
6
+
7
+ 用于:
8
+
9
+ subapp2
10
+ core
11
+ shouji2
12
+ home
13
+ square
14
+ podcast
15
+ outside
16
+ backend
17
+ baiduyy
18
+ chezai
19
+ litewap
20
+ pc
21
+ thirdparty
22
+ wap
23
+ weixin_public
24
+
25
+
26
+
27
+ model如何对应分表?
28
+
29
+ 分表的TrackRecord,对应100张表有(TrackRecord0-TrackRecord99)100个类,根据key找类:TrackRecord.shard(key) #=> TrackRecord59
30
+
31
+ 拿到返回的类再操作,是线程安全的,例如:
32
+ TrackRecord.shard(key).where
33
+ TrackRecord.shard(key).create
34
+ TrackRecord.shard(key).new
35
+
36
+ svn地址:
37
+ svn://192.168.3.221/zdjt/ting/ting_model
38
+
39
+ 测试:
40
+ ruby test/stn.rb (不安全,报错)
41
+ ruby test/shard.rb (安全,并行处理并输出)
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
data/gen_shards.rb ADDED
@@ -0,0 +1,59 @@
1
+ File.open(File.expand_path("../tmp/shards.rb", __FILE__), 'wb') do |f|
2
+ # f.puts "require 'active_record'"
3
+ f.puts "require File.expand_path('../album_origin.rb', __FILE__)"
4
+ f.puts "require File.expand_path('../block_avatar_origin.rb', __FILE__)"
5
+ f.puts "require File.expand_path('../chat_origin.rb', __FILE__)"
6
+ f.puts "require File.expand_path('../comment_origin.rb', __FILE__)"
7
+ f.puts "require File.expand_path('../favorite_origin.rb', __FILE__)"
8
+ f.puts "require File.expand_path('../favorite_album_origin.rb', __FILE__)"
9
+ f.puts "require File.expand_path('../follower_origin.rb', __FILE__)"
10
+ f.puts "require File.expand_path('../follower_tag_origin.rb', __FILE__)"
11
+ f.puts "require File.expand_path('../followerx2_group_origin.rb', __FILE__)"
12
+ f.puts "require File.expand_path('../following_origin.rb', __FILE__)"
13
+ f.puts "require File.expand_path('../followingx2_group_origin.rb', __FILE__)"
14
+ f.puts "require File.expand_path('../following_group_origin.rb', __FILE__)"
15
+ f.puts "require File.expand_path('../following_tag_origin.rb', __FILE__)"
16
+ f.puts "require File.expand_path('../inbox_origin.rb', __FILE__)"
17
+ f.puts "require File.expand_path('../linkman_origin.rb', __FILE__)"
18
+ f.puts "require File.expand_path('../lover_origin.rb', __FILE__)"
19
+ f.puts "require File.expand_path('../lover_album_origin.rb', __FILE__)"
20
+ f.puts "require File.expand_path('../outbox_origin.rb', __FILE__)"
21
+ f.puts "require File.expand_path('../track_origin.rb', __FILE__)"
22
+ f.puts "require File.expand_path('../track_block_origin.rb', __FILE__)"
23
+ f.puts "require File.expand_path('../track_in_record_origin.rb', __FILE__)"
24
+ f.puts "require File.expand_path('../track_picture_origin.rb', __FILE__)"
25
+ f.puts "require File.expand_path('../track_record_origin.rb', __FILE__)"
26
+ f.puts "require File.expand_path('../track_rich_origin.rb', __FILE__)"
27
+ f.puts "require File.expand_path('../track_set_origin.rb', __FILE__)"
28
+ f.puts "require File.expand_path('../track_set_rich_origin.rb', __FILE__)"
29
+ f.puts "require File.expand_path('../user_tag_origin.rb', __FILE__)"
30
+ 100.times do |i|
31
+ f.puts "class Album#{i} < AlbumOrigin; self.table_name = 'tb_album#{i}'; end"
32
+ f.puts "class BlockAvatar#{i} < BlockAvatarOrigin; self.table_name = 'tb_block_avatar#{i}'; end"
33
+ f.puts "class Chat#{i} < ChatOrigin; self.table_name = 'tb_chat#{i}'; end"
34
+ f.puts "class Comment#{i} < CommentOrigin; self.table_name = 'tb_comment#{i}'; end"
35
+ f.puts "class Favorite#{i} < FavoriteOrigin; self.table_name = 'tb_favorite#{i}'; end"
36
+ f.puts "class FavoriteAlbum#{i} < FavoriteAlbumOrigin; self.table_name = 'tb_favorite_album#{i}'; end"
37
+ f.puts "class Follower#{i} < FollowerOrigin; self.table_name = 'tb_follower#{i}'; end"
38
+ f.puts "class FollowerTag#{i} < FollowerTagOrigin; self.table_name = 'tb_follower_tag#{i}'; end"
39
+ f.puts "class Followerx2Group#{i} < Followerx2GroupOrigin; self.table_name = 'tb_followerx2_group#{i}'; end"
40
+ f.puts "class Following#{i} < FollowingOrigin; self.table_name = 'tb_following#{i}'; end"
41
+ f.puts "class Followingx2Group#{i} < Followingx2GroupOrigin; self.table_name = 'tb_followingx2_group#{i}'; end"
42
+ f.puts "class FollowingGroup#{i} < FollowingGroupOrigin; self.table_name = 'tb_following_group#{i}'; end"
43
+ f.puts "class FollowingTag#{i} < FollowingTagOrigin; self.table_name = 'tb_following_tag#{i}'; end"
44
+ f.puts "class Inbox#{i} < InboxOrigin; self.table_name = 'tb_inbox#{i}'; end"
45
+ f.puts "class Linkman#{i} < LinkmanOrigin; self.table_name = 'tb_linkman#{i}'; end"
46
+ f.puts "class Lover#{i} < LoverOrigin; self.table_name = 'tb_lover#{i}'; end"
47
+ f.puts "class LoverAlbum#{i} < LoverAlbumOrigin; self.table_name = 'tb_lover_album#{i}'; end"
48
+ f.puts "class Outbox#{i} < OutboxOrigin; self.table_name = 'tb_outbox#{i}'; end"
49
+ f.puts "class Track#{i} < TrackOrigin; self.table_name = 'tb_track#{i}'; end"
50
+ f.puts "class TrackBlock#{i} < TrackBlockOrigin; self.table_name = 'tb_track_block#{i}'; end"
51
+ f.puts "class TrackInRecord#{i} < TrackInRecordOrigin; self.table_name = 'tb_track_in_record#{i}'; end"
52
+ f.puts "class TrackPicture#{i} < TrackPictureOrigin; self.table_name = 'tb_track_picture#{i}'; end"
53
+ f.puts "class TrackRecord#{i} < TrackRecordOrigin; self.table_name = 'tb_track_record#{i}'; end"
54
+ f.puts "class TrackRich#{i} < TrackRichOrigin; self.table_name = 'tb_track_rich#{i}'; end"
55
+ f.puts "class TrackSet#{i} < TrackSetOrigin; self.table_name = 'tb_track_set#{i}'; end"
56
+ f.puts "class TrackSetRich#{i} < TrackSetRichOrigin; self.table_name = 'tb_track_set_rich#{i}'; end"
57
+ f.puts "class UserTag#{i} < UserTagOrigin; self.table_name = 'tb_user_tag#{i}'; end"
58
+ end
59
+ end
@@ -0,0 +1,9 @@
1
+ module AlbumExtender
2
+ def next_id
3
+ ID_SERVICE.getNextId("ting.tb_album")
4
+ end
5
+
6
+ def decr_user_albums_count(uid)
7
+ COUNTER_SERVICE.decrBy('user.albums.count', uid, 1)
8
+ end
9
+ end
@@ -0,0 +1,5 @@
1
+ module BlockAvatarExtender
2
+ def next_id
3
+ ID_SERVICE.getNextId("ting.tb_block_avatar")
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ module ChatExtender
2
+ def next_id
3
+ ID_SERVICE.getNextId("ting.tb_chat")
4
+ end
5
+ end
@@ -0,0 +1,21 @@
1
+ require 'zlib'
2
+
3
+ module ClassNode
4
+
5
+ def seek(key)
6
+ unless @sorted_nodes
7
+ sorted_nodes, node_x_class_nodes = [], {}
8
+ self.select('node, class_name, table_name').order('node').each do |class_node|
9
+ sorted_nodes << class_node.node
10
+ node_x_class_nodes[class_node.node] = class_node
11
+ end
12
+ @sorted_nodes, @node_x_class_nodes = sorted_nodes, node_x_class_nodes
13
+ end
14
+
15
+
16
+
17
+ node = @sorted_nodes.bsearch{|node| node >= Zlib::crc32(key.to_s)} || @sorted_nodes.first
18
+ @node_x_class_nodes[node]
19
+ end
20
+
21
+ end
@@ -0,0 +1,5 @@
1
+ module CommentExtender
2
+ def next_id
3
+ ID_SERVICE.getNextId("ting.tb_comment")
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ module FavoriteAlbumExtender
2
+ def next_id
3
+ ID_SERVICE.getNextId("ting.tb_favorite_album")
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ module FavoriteExtender
2
+ def next_id
3
+ ID_SERVICE.getNextId("ting.tb_favorite")
4
+ end
5
+ end
@@ -0,0 +1,13 @@
1
+ module FollowingExtender
2
+ def next_id
3
+ ID_SERVICE.getNextId("ting.tb_following")
4
+ end
5
+
6
+ def decr_user_followings_count(uid)
7
+ COUNTER_SERVICE.decrBy('user.followings.count', uid, 1)
8
+ end
9
+
10
+ def decr_user_followers_count(uid)
11
+ COUNTER_SERVICE.decrBy('user.followers.count', uid, 1)
12
+ end
13
+ end
@@ -0,0 +1,5 @@
1
+ module FollowingGroupExtender
2
+ def next_id
3
+ ID_SERVICE.getNextId("ting.tb_following_group")
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ module FollowingTagExtender
2
+ def next_id
3
+ ID_SERVICE.getNextId("ting.tb_following_tag")
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ module Followingx2GroupExtender
2
+ def next_id
3
+ ID_SERVICE.getNextId("ting.tb_followingx2_group")
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ module InboxExtender
2
+ def next_id
3
+ ID_SERVICE.getNextId("ting.tb_inbox")
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ module LinkmanExtender
2
+ def next_id
3
+ ID_SERVICE.getNextId("ting.tb_linkman")
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ module OutboxExtender
2
+ def next_id
3
+ ID_SERVICE.getNextId("ting.tb_outbox")
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ module TrackBlockExtender
2
+ def next_id
3
+ ID_SERVICE.getNextId("ting.tb_track_block")
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ module TrackExtender
2
+ def next_id
3
+ ID_SERVICE.getNextId("ting.tb_track")
4
+ end
5
+ end
@@ -0,0 +1,76 @@
1
+ module TrackInRecordExtender
2
+ # TIR_CACHE_VERSION = 2
3
+
4
+ def fetch(track_id)
5
+ # key = "tir#{track_id}h#{TIR_CACHE_VERSION}"
6
+ # data = REDIS.get(key)
7
+ # return Hessian2.parse(data, TrackInRecordStruct) if data
8
+
9
+ # obj = TrackInRecord.shard(track_id).where(op_type: 1, track_id: track_id).first
10
+ # if obj
11
+ # REDIS.set(key, Hessian2.write(Hessian2::StructWrapper.new(TrackInRecordStruct, obj)))
12
+ # REDIS.expire(key, 604800)
13
+ # end
14
+
15
+ # obj
16
+
17
+ cache_server = $xunch["track_in_record"]
18
+ data = cache_server.get(track_id)
19
+ return data if data
20
+ obj = self.shard(track_id).where(op_type: 1, track_id: track_id).first
21
+ if obj
22
+ cache_server.put(obj)
23
+ end
24
+ obj
25
+ end
26
+
27
+ def mfetch(track_ids, ignore_nil = false)
28
+ # return [] if track_ids.empty?
29
+
30
+ # datas = REDIS.mget(track_ids.map{|track_id| "tir#{track_id}h#{TIR_CACHE_VERSION}" })
31
+ # objs = []
32
+
33
+ # datas.each_with_index do |data, i|
34
+ # if data
35
+ # objs << Hessian2.parse(data, TrackInRecordStruct)
36
+ # else
37
+ # track_id = track_ids[i]
38
+ # obj = TrackInRecord.shard(track_id).where(op_type: 1, track_id: track_id).first
39
+ # objs << obj
40
+ # if obj
41
+ # key = "tir#{track_id}h#{TIR_CACHE_VERSION}"
42
+ # REDIS.set(key, Hessian2.write(Hessian2::StructWrapper.new(TrackInRecordStruct, obj)))
43
+ # REDIS.expire(key, 604800)
44
+ # end
45
+ # end
46
+ # end
47
+
48
+ # objs.delete(nil) if ignore_nil
49
+ # objs
50
+
51
+ return [] if track_ids.empty?
52
+ cache_server = $xunch["track_in_record"]
53
+ datas = cache_server.multi_get(track_ids.clone)
54
+ objs = []
55
+ datas.each_with_index do |data, i|
56
+ if data
57
+ objs << data
58
+ else
59
+ track_id = track_ids[i]
60
+ obj = self.shard(track_id).where(op_type: 1, track_id: track_id).first
61
+ objs << obj
62
+ if obj
63
+ cache_server.put(obj)
64
+ end
65
+ end
66
+ end
67
+ objs.delete(nil) if ignore_nil
68
+ objs
69
+ end
70
+
71
+ def del_cache(r)
72
+ # REDIS.del("tir#{r.track_id}h#{TIR_CACHE_VERSION}")
73
+ $xunch["track_in_record"].evict(r.track_id)
74
+ end
75
+
76
+ end
@@ -0,0 +1,5 @@
1
+ module TrackPictureExtender
2
+ def next_id
3
+ ID_SERVICE.getNextId("ting.tb_track_picture")
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ module TrackRecordExtender
2
+ def next_id
3
+ ID_SERVICE.getNextId("ting.tb_track_record")
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ module TrackRichExtender
2
+ def next_id
3
+ ID_SERVICE.getNextId("ting.tb_track_rich")
4
+ end
5
+ end
@@ -0,0 +1,79 @@
1
+ module TrackSetExtender
2
+ # TRACKSET_CACHE_VERSION = 3
3
+
4
+ def fetch(id)
5
+ # key = "set#{id}h#{TRACKSET_CACHE_VERSION}"
6
+ # data = REDIS.get(key)
7
+ # return Hessian2.parse(data, TrackSetStruct) if data
8
+
9
+ # obj = TrackSet.shard(id).where(id: id).first
10
+ # if obj
11
+ # REDIS.set(key, Hessian2.write(Hessian2::StructWrapper.new(TrackSetStruct, obj)))
12
+ # REDIS.expire(key, 604800)
13
+ # end
14
+
15
+ # obj
16
+
17
+ cache_server = $xunch["track_set"]
18
+ data = cache_server.get(id)
19
+ return data if data
20
+ obj = self.shard(id).where(id: id).first
21
+ if obj
22
+ cache_server.put(obj)
23
+ end
24
+
25
+ obj
26
+ end
27
+
28
+ def mfetch(ids, ignore_nil = false)
29
+ # return [] if ids.empty?
30
+
31
+ # datas = REDIS.mget(ids.map{|id| "set#{id}h#{TRACKSET_CACHE_VERSION}" })
32
+ # objs = []
33
+
34
+ # datas.each_with_index do |data, i|
35
+ # if data
36
+ # objs << Hessian2.parse(data, TrackSetStruct)
37
+ # else
38
+ # id = ids[i]
39
+ # obj = TrackSet.shard(id).where(id: id).first
40
+ # objs << obj
41
+ # if obj
42
+ # key = "set#{id}h#{TRACKSET_CACHE_VERSION}"
43
+ # REDIS.set(key, Hessian2.write(Hessian2::StructWrapper.new(TrackSetStruct, obj)))
44
+ # REDIS.expire(key, 604800)
45
+ # end
46
+ # end
47
+ # end
48
+
49
+ # objs.delete(nil) if ignore_nil
50
+ # objs
51
+
52
+ return [] if ids.empty?
53
+
54
+ cache_server = $xunch["track_set"]
55
+
56
+ datas = cache_server.multi_get(ids)
57
+ objs = []
58
+ datas.each_with_index do |data, i|
59
+ if data
60
+ objs << data
61
+ else
62
+ id = ids[i]
63
+ obj = self.shard(id).where(id: id).first
64
+ objs << obj
65
+ if obj
66
+ cache_server.put(obj)
67
+ end
68
+ end
69
+ end
70
+ objs.delete(nil) if ignore_nil
71
+ objs
72
+ end
73
+
74
+ def del_cache(r)
75
+ # REDIS.del("set#{r.id}h#{TRACKSET_CACHE_VERSION}")
76
+ $xunch["track_set"].evict(r.id)
77
+ end
78
+
79
+ end
@@ -0,0 +1,5 @@
1
+ module TrackSetRichExtender
2
+ def next_id
3
+ ID_SERVICE.getNextId("ting.tb_track_set_rich")
4
+ end
5
+ end