私はルビー+ MongoMapperレース条件、URL短縮アルゴリズム/レール/ MongoDBの/ MongoMapper
とURL短縮アルゴリズムを作成したことが最大各#は可能3桁 http://pablocantero.com/###
とシンプルなURL短縮アルゴリズムです[AZ]または[AZ]又は[0-9]
このアルゴリズムについては、私は( MongoMapper介して)MongoDBの上に4つの属性
class ShortenerData
include MongoMapper::Document
VALUES = ('a'..'z').to_a + ('A'..'Z').to_a + (0..9).to_a
key :col_a, Integer
key :col_b, Integer
key :col_c, Integer
key :index, Integer
end
を永続化する必要があります
私は、私の疑問は、私が同期get_unique作ることができ、私のアプリは を展開する方法であるユニークな 識別子
class Shortener
include Singleton
def get_unique
unique = nil
@shortener_data.reload
# some operations that can increment the attributes col_a, col_b, col_c and index
# ...
@shortener_data.save
unique
end
end
短縮の使用
Shortener.instance.get_unique
を生成するShortenerDataを管理するために別のクラスを作成し、ヒロクでは、同時リクエストでも電話できます Shortener.instance.get_unique