Python2.7+php5.4结合对安卓apk包进行分包处理-1

##python代码

# -*-coding:utf-8-*-
import sys,os
import MySQLdb
import time
import urllib2
import urllib
import threading
import requests

event=threading.Event()
lock=threading.RLock()
def _wordking():
        global gl_num
        #链接Mysql
        conn=MySQLdb.connect(host="127.0.0.1",user="root",passwd="xxx",db="xxx",charset="utf8")
        cursor=conn.cursor()
        try:
            conn.ping(True)

        except Exception,e:
            conn=MySQLdb.connect(host="127.0.0.1",user="root",passwd="xxx",db="xxx",charset="utf8")
            cursor=conn.cursor()
            print e
        #查询数据
        a_list=[]
        try:
            n=cursor.execute("select url from app_dsrw limit 4")
            #获取返回集
            lists=cursor.fetchall()
            #遍历url
            for row in lists:
                for i in row:
                    a_list.append(i)
        except Exception, e:
            print e

        #获取遍历出来的数量
        num=len(a_list)
        if num==0:
            os.system("killall -9 python2.7")
            event.set()
            num=-1
        x=0
        left_count=num;
        while x<num:
            event.clear()
            if left_count>4:
                count=4
            else:
                count=left_count
            gl_num=count

            for i in xrange(count):
                t=threading.Thread(target=exec_url,args=(a_list[x+i],))
                t.start()
            event.wait()
            x += count

            left_count -= count
            #print left_count

        #关闭数据库
        cursor.close()
        conn.close()


def exec_url(arg):
    url=arg
    #req=urllib2.Request(url)
    #res_data=urllib2.urlopen(req,timeout=600)
    #res=res_data.read()

    r = requests.get(url,timeout=60000)

    #req=urllib2.Request(url)
    #res_data=urllib2.urlopen(req,timeout=60000)
    #res=res_data.read()

    lock.acquire()
    global gl_num
    gl_num -=1
    if gl_num<=0:
        event.set()
    lock.release()


def daemonize(stdin="/dev/null",stdout="/dev/null",stderr="dev/null"):
    try:
        pid=os.fork()
        if pid>0:
            sys.exit(0)
    except OSError, e:
        sys.stderr.write("form #1 failed:(%d) %s\n" % (e.error,e.strerror))
        sys.exit(1)

    os.chdir("/")
    os.umask(0)
    os.setsid()

    try:
        pid=os.fork()
        if pid>0:
           sys.exit(0)
    except OSError, e:
        sys.stderr.write("fork #2 failed:(%d) %s\n" % (e.error,e.strerror))
        sys.exit(1)
    for f in sys.stdout,sys.stderr:
        f.flush()
        si=file(stdin,"r")
        so=file(stdout,"a+")
        se=file(stderr,"a+",0)
        os.dup2(si.fileno(),sys.stdin.fileno())
        os.dup2(so.fileno(),sys.stdout.fileno())
        os.dup2(se.fileno(),sys.stderr.fileno())

if __name__=="__main__":
    #daemonize()
    _wordking()


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值