def post_sounds_to_tagrecommendation_service(sound_qs):
    data_to_post = []
    N_SOUNDS_PER_CALL = 10
    total_calls = int(ceil(float(len(sound_qs)) / N_SOUNDS_PER_CALL))
    print "Sending recommendation data..."
    idx = 1
    for count, sound in enumerate(sound_qs):
        data_to_post.append(
            (sound.id,
             list(
                 sound.tags.select_related("tag").values_list('tag__name',
                                                              flat=True))))
        if (count + 1) % N_SOUNDS_PER_CALL == 0:
            ids = [element[0] for element in data_to_post]
            tagss = [element[1] for element in data_to_post]
            print "\tSending group of sounds %i of %i (%i sounds)" % (
                idx, total_calls, len(ids))
            idx += 1
            TagRecommendation.add_to_index(ids, tagss)
            data_to_post = []

    if data_to_post:
        ids = [element[0] for element in data_to_post]
        tagss = [element[1] for element in data_to_post]
        print "\tSending group of sounds %i of %i (%i sounds)" % (
            idx, total_calls, len(ids))
        TagRecommendation.add_to_index(ids, tagss)

    print "Finished!"
Пример #2
0
def post_sounds_to_tagrecommendation_service(sound_qs):
    data_to_post = []
    N_SOUNDS_PER_CALL = 10
    total_calls = int(ceil(float(len(sound_qs))/N_SOUNDS_PER_CALL))
    print "Sending recommendation data..."
    idx = 1
    for count, sound in enumerate(sound_qs):
        data_to_post.append(
            (sound.id, list(sound.tags.select_related("tag").values_list('tag__name', flat=True)))
        )
        if (count + 1) % N_SOUNDS_PER_CALL == 0:
            ids = [element[0] for element in data_to_post]
            tagss = [element[1] for element in data_to_post]
            print "\tSending group of sounds %i of %i (%i sounds)" % (idx, total_calls, len(ids))
            idx += 1
            TagRecommendation.add_to_index(ids, tagss)
            data_to_post = []

    if data_to_post:
        ids = [element[0] for element in data_to_post]
        tagss = [element[1] for element in data_to_post]
        print "\tSending group of sounds %i of %i (%i sounds)" % (idx, total_calls, len(ids))
        TagRecommendation.add_to_index(ids, tagss)

    print "Finished!"