Django 如何优化查询facebook graph API

Django 如何优化查询facebook graph API,django,python-3.x,facebook,facebook-graph-api,data-analysis,Django,Python 3.x,Facebook,Facebook Graph Api,Data Analysis,因此,我们正在构建一个从FACEBOOK-WORKPLACE获取数据的web应用程序。除此之外,我们还在构建一个机器学习算法,以帮助预测面临员工流失风险的员工。我们正在使用一个叫做“反应给定”的预测因子,为了得到这个,我们必须 登录时获取用户电子邮件 获取与用户关联的所有组 获取每组的所有帖子 检查用户是否喜欢该帖子 它正在工作,但运行大约需要2分钟。你知道我们如何优化它吗?出于分析目的,这不是一个问题,但请注意,我们正在向web应用程序显示一个摘要统计信息,这可能会导致错误的UX def ge

因此,我们正在构建一个从FACEBOOK-WORKPLACE获取数据的web应用程序。除此之外,我们还在构建一个机器学习算法,以帮助预测面临员工流失风险的员工。我们正在使用一个叫做“反应给定”的预测因子,为了得到这个,我们必须

  • 登录时获取用户电子邮件
  • 获取与用户关联的所有组
  • 获取每组的所有帖子
  • 检查用户是否喜欢该帖子
  • 它正在工作,但运行大约需要2分钟。你知道我们如何优化它吗?出于分析目的,这不是一个问题,但请注意,我们正在向web应用程序显示一个摘要统计信息,这可能会导致错误的UX

    def get_user_groups(self):
        group_list = []
        group = graph.request('%s?fields=groups&limit=999999999999' %self.email_address)
        group = group['groups']['data']
    
        for i in group:
            group_list.append(i['id'])
    
        print('User has no groups')
        return group_list
    
    
    def get_group_feed(self,group_id):
        group_post = graph.request('%s/feed?limit=9999999999' %group_id)
    
        try:
            group_post = group_post['data']
        except:
            print('Group has no posts')
        return group_post
    
    
    def get_group_post_list(self):
        group_post_list = []
        for i in (self.get_user_groups()):
            for j in (self.get_group_feed(i)):
                try:
                    group_post_list.append(j['id'])
                except:
                    print('No id')
        return group_post_list
    
    
    def get_reaction_given(self):
        for i in self.get_group_post_list():
            print(self.get_reaction_received(i))
    

    将限制设置为一个巨大的数字意味着您要一次又一次地获取相同的数据,您最好将旧数据缓存到db(或redis)中。并且只获取大约100个分页结果,直到找不到新结果为止。另外,请分析给定的代码,并告诉我们哪些函数占用了大量的时间设置限制,这意味着您要一次又一次地获取相同的数据,您最好将旧数据缓存到db(或redis)中。并且只获取大约100个分页结果,直到找不到新结果为止。还要分析给定的代码,并告诉我们哪些函数占用了大部分时间