Simple Linux Panel
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
mdserver-web/plugins/solr/script/full.py

57 lines
1.6 KiB

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import MySQLdb as mdb
import random
import sys
import subprocess
import time
sys.path.append("/usr/local/lib/python2.7/site-packages")
conn = mdb.connect(host='0.0.0.0',
port=3306,
user='xxx',
passwd='xxx',
db='xxx',
charset='utf8')
conn.autocommit(True)
cursor = conn.cursor()
sql = 'select id from xxx order by id desc limit 1'
r = cursor.execute(sql)
count = 0
for info in cursor.fetchall():
count = info[0]
conn.close()
def execShell(cmdstring, cwd=None, timeout=None, shell=True):
if shell:
cmdstring_list = cmdstring
else:
cmdstring_list = shlex.split(cmdstring)
if timeout:
end_time = datetime.datetime.now() + datetime.timedelta(seconds=timeout)
sub = subprocess.Popen(cmdstring_list, cwd=cwd, stdin=subprocess.PIPE,
shell=shell, bufsize=4096, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
while sub.poll() is None:
time.sleep(0.1)
if timeout:
if end_time <= datetime.datetime.now():
raise Exception("Timeout:%s" % cmdstring)
return sub.communicate()
length = 100
for x in xrange(0, count / length + 1):
y = x * length
cmd = 'curl --basic -u admin:admin "http://127.0.0.1:8983/solr/sodht/dataimport?command=full-import&wt=json&clean=false&commit=true&length=' + \
str(length) + '&offset=' + str(y) + '"'
print execShell(cmd)
time.sleep(0.3)