コード例 #1
0
def task():
    print "do taks..."
    all_product_maps = {}
    count = 0
    # Email.sendTaskStart()
    offline_map_email = {}
    recheck_map = {}
    except_map = []
    # if((not FileUtil.todayUpdated()) and FileUtil.updateEnable()):
    AppAnnieProcessor.dumpAppFromNet()
    return
    print "get product from file..."
    all_product_maps = FileUtil.getAllKindProductMaps()
    print "waiting vpn connected(10min)..."
    waitfor(OnlineCheck.googleAccessable)
    myThreadPool = threadpool.ThreadPool(50)
    if (OnlineCheck.googleAccessable()):
        paramsList = []
        for productMapKind in all_product_maps:
            product_map_for_kind = all_product_maps[productMapKind]
            count = count + 1
            # print "count->" + str(count) + " " + productMapKind
            # print "check %s..." % str(product_map_for_kind)
            for product_pkg in product_map_for_kind:
                # print "check pkg->%s..." % product_pkg
                paramsList.append(([
                    product_pkg, productMapKind, product_map_for_kind,
                    recheck_map, offline_map_email
                ], None))
                # checkOnlineTask(product_pkg, productMapKind, product_map_for_kind, offline_map_log, offline_map_email)
        requestsList = threadpool.makeRequests(checkOnlineTask, paramsList)
        map(myThreadPool.putRequest, requestsList)
        print "wait..."
        myThreadPool.wait()
        time.sleep(5)
        print "recheck exception:\n" + str(recheck_map)
        for category in recheck_map:
            appList = recheck_map[category]
            for appInfo in appList:
                ret = OnlineCheck.checkProduct(appInfo["pkg"])
                if (ret[Common.RET_BOOL_VAL]):
                    print "%s online" % product_pkg
                else:
                    print "%s offline!!!" % product_pkg
                    # local log content
                    if (ret[Common.RET_EXCEPT] != Common.RET_NONE):
                        category_list = except_map.get(category)
                        if not category_list:
                            category_list = []
                            recheck_map[category] = category_list
                            except_map[category].append(appInfo)
                    # Email content
                    if ret[Common.RET_CODE] == str(404):
                        category_list = offline_map_email.get(category)
                        if not category_list:
                            category_list = []
                            offline_map_email[category] = category_list
                        offline_map_email[category].append({appInfo})
                time.sleep(3)
        print "check done."
        Email.loginAndSend(offline_map_email)
        FileUtil.saveLog(except_map)
        FileUtil.saveLog(offline_map_email)
        FileUtil.updateEnable()
    else:
        print "不能翻墙,请稍后再试。"