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.5 KiB

6 years ago
#!/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")
6 years ago
conn = mdb.connect(host='0.0.0.0',
port=3306,
user='xxx',
passwd='xxx',
db='xxx',
charset='utf8')
6 years ago
conn.autocommit(True)
cursor = conn.cursor()
6 years ago
sql = 'select id from xxx order by id desc limit 1'
6 years ago
r = cursor.execute(sql)
count = 0
6 years ago
for info in cursor.fetchall():
6 years ago
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()
6 years ago
for x in xrange(1, count / 100 + 1):
6 years ago
y = x * 100
6 years ago
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=100&offset=' + \
6 years ago
str(y) + '"'
print execShell(cmd)