2011-02-03 4 views
0

저는 Python Picasa API를 사용하여 모든 연락처에서 가장 최근 20 장의 사진을 가져옵니다 (20 장의 사진 만, 가장 최근의 사진 만). 파이썬에서 이것을 코딩했지만 매우 느립니다. 나는 콘택트 당 20 장의 사진을 가져 오는 중이다. (총 20 장의 사진을 원한다).Picasa Python API : 최근에 업로드 한 사진을 모든 연락처에서 가져 오기

def getRecentPhotos(self, user='default', limit='20'): 
    users = self.getContactIDs(user) 
    photos_tmp = [] 
    photos = [] 
    for user in users: 
     photos_tmp = self.getRecentPhotosByUser(user) 
     for photo in photos_tmp.entry: 
      photos.append(photo) 
    photos_sorted = sorted(photos, key=lambda photo: photo.timestamp.text, reverse=True) 
    return photos_sorted[:20] 

이 요청은 평균 8 초 (로컬 웹 서버에서) 걸립니다. 이것을 어떻게 최적화 할 수 있습니까? 가장 긴 호출은 두 for 루프가 중첩 된 부분입니다.

답변

1

첫 번째 사용자로부터 20 장의 사진을 얻을 수 있습니다. 그런 다음 각 사용자에 대해 가장 최근의 사진 1 장만 가져 오기 시작할 수 있습니다. 그것이 최근의 20 대 초반에 충분하다면 더 이상 얻을 수 없을 때까지 좀 더 늘리십시오. 그렇지 않은 경우 곧장 다음 연락처로 이동하십시오.

매번 가장 최근의 사진이 항상 최신 20 일 때마다 결과를 캐시하고 각 연락처를 산발적으로 확인하여 새로운 사진을 추가했는지 확인할 수 있습니다.

관련 문제