微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Kaltura API (Python) 上的 QUERY_EXCEEDED_MAX_MATCHES_ALLOWED 错误

如何解决Kaltura API (Python) 上的 QUERY_EXCEEDED_MAX_MATCHES_ALLOWED 错误

我无法在 Kaltura 中生成所有条目。带有消息“无法生成列表。已达到最大匹配值”(错误:QUERY_EXCEEDED_MAX_MATCHES_ALLOWED)的 ApiException 被触发。

我试图通过将 sessionPrivileges 设置为 disableentitlement

解决此类问题
class class_chk_integrity():
    client = None
    pagesize = 0

    def __init__(self,worker_num,progress):
        self.pagesize = 30
        self.worker_num = worker_num
        self.progress = progress

        config = KalturaConfiguration(2723521)
        config.serviceUrl = "https://www.kaltura.com/"
        self.client = KalturaClient(config)
        ks = self.client.session.start("KALTURA_ADMIN_SECRET","email@email.com",KalturaPluginscore.KalturaSessionType.ADMIN,"KALTURA_PARTNER_ID",432000,"disableentitlement")
        self.client.setKs(ks)

我还尝试根据 id 进行过滤。但是,我无法让 filter.idnotin 正常工作。

   def get_total_reg(self,cont,lastEntryIds,lastEntryCreatedAt):
        
        
        filter = KalturaPluginscore.KalturaBaseEntryFilter()

        if lastEntryIds != "":
            filter.idnotin = lastEntryIds

        filter.orderBy = KalturaBaseEntryOrderBy.CREATED_AT_DESC

        pager = KalturaPluginscore.KalturaFilterPager()
        

        pageIndex = 1
        entriesGot = 0

        pager.pageSize = self.pagesize
        pager.setPageIndex = pageIndex
        result = self.client.baseEntry.list(filter,pager)
        totalCount = result.totalCount

        if totalCount > 10000:
            totalCount = 9970

        if totalCount <= 0:
            cont = False
        
        while entriesGot < totalCount:

            pager.pageSize = self.pagesize
            pageIndex += 1
            pager.pageIndex = pageIndex
            result = self.client.baseEntry.list(filter,pager)
            entriesGot += len(result.objects)

        
            for e in result.objects:
                if lastEntryIds == "":
                    lastEntryIds.append(e.id)
                else:
                    lastEntryIds.append(e.id)

                lastEntryCreatedAt = e.createdAt
        

        return result.totalCount,self.pagesize,lastEntryCreatedAt

这就是我调用函数的方式

if __name__ == '__main__':
    try:
        log = _ServiceUtils.log()
        log.setup('all','integrity')
        cont = True
        lastEntryIds = []
        lastEntryCreatedAt = 0


        while cont is True:

            kmc = class_chk_integrity(0,0)
        
            kmc_total_reg,kmc_page_size,lastEntryCreatedAt = kmc.get_total_reg(cont,lastEntryCreatedAt)

            interval = 10
            max_threads = math.ceil(kmc_total_reg / (interval * kmc_page_size))
            # max_threads = 1
            threads_list = []

            print('TOTAL REG : %s | PAGE_SIZE : %s | INTERVAL : %s | THREADS : %s' % (kmc_total_reg,interval,max_threads))  

            progress = class_progress_thread(max_threads)

            for index in range(0,max_threads):
                page_ini = index * interval
                page_end = index * interval + interval
                progress.add_worker_progress(index,datetime.Now())

                threads_list.append(threading.Thread(target=thread_chk_integrity,args=(index,log,index * interval + 1,index * interval + interval,progress)))
        
            threads_list.append(threading.Thread(target=thread_output_progress,args=(progress,max_threads)))    

            for thread in threads_list:
                thread.start()

            for thread in threads_list:
                thread.join()

            while not progress.stop(): time.sleep(30)


    except KeyboardInterrupt:
        try:
            sys.exit(0)
        except SystemExit:
            os._exit(0)

如果有任何帮助,我将不胜感激。 感谢您的关注。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。