parent
dcc7f3d186
commit
0323f5a3bb
11
config.py
11
config.py
|
|
@ -5,6 +5,17 @@ import sys
|
|||
g_args = None
|
||||
|
||||
|
||||
def get_servers():
|
||||
js = read_json()
|
||||
_servers = js["servers"]
|
||||
servers_dic = {}
|
||||
for s in _servers:
|
||||
servers_dic[s] = {}
|
||||
servers_dic[s]["name"] = s
|
||||
servers_dic[s]["url"] = _servers[s]["url"]
|
||||
return servers_dic
|
||||
|
||||
|
||||
def read_json():
|
||||
global g_args
|
||||
json_path = g_args.config
|
||||
|
|
|
|||
|
|
@ -4,23 +4,15 @@ import model
|
|||
import config
|
||||
|
||||
|
||||
def get_servers():
|
||||
js = config.read_json()
|
||||
_servers = js["servers"]
|
||||
servers_dic = {}
|
||||
for s in _servers:
|
||||
servers_dic[s] = {}
|
||||
servers_dic[s]["name"] = s
|
||||
servers_dic[s]["url"] = _servers[s]["url"]
|
||||
return servers_dic
|
||||
|
||||
|
||||
|
||||
# file_size if byte
|
||||
# longest_time seconds
|
||||
def download_file(chunk_size=4 * 1024, file_size=100 * 1024 * 1024, longest_time=60):
|
||||
execution_datetime=datetime.datetime.now()
|
||||
print(execution_datetime)
|
||||
servers = get_servers()
|
||||
print("Download at {time}".format(time=execution_datetime))
|
||||
servers = config.get_servers()
|
||||
for server_name in servers:
|
||||
server = servers[server_name]
|
||||
url = server["url"]
|
||||
|
|
|
|||
3
main.py
3
main.py
|
|
@ -1,10 +1,11 @@
|
|||
#!/usr/bin/python
|
||||
|
||||
import datetime
|
||||
import downloader
|
||||
import config
|
||||
import ping
|
||||
|
||||
if __name__ == "__main__":
|
||||
config.init_config()
|
||||
downloader.download_file()
|
||||
ping.ping()
|
||||
print("Finished.")
|
||||
|
|
|
|||
15
model.py
15
model.py
|
|
@ -7,10 +7,23 @@ mysql_db = MySQLDatabase(
|
|||
|
||||
|
||||
def add_record(execution_datetime, server, speed):
|
||||
execution_datetime_utc = execution_datetime-datetime.timedelta(hours=8)#转换为UTC时间。
|
||||
execution_datetime_utc = execution_datetime - datetime.timedelta(
|
||||
hours=8
|
||||
) # 转换为UTC时间。
|
||||
# print(now_timestamp)
|
||||
mysql_db.execute_sql(
|
||||
'insert into vps_download_speed(server,speed,datetime) values("{server}",{speed},"{datetime}")'.format(
|
||||
server=server, speed=speed, datetime=execution_datetime_utc
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
def add_ping_record(execution_datetime, server, ping):
|
||||
execution_datetime_utc = execution_datetime - datetime.timedelta(
|
||||
hours=8
|
||||
) # 转换为UTC时间。
|
||||
mysql_db.execute_sql(
|
||||
'insert into vps_ping(server,ping,datetime) values("{server}",{ping},"{datetime}")'.format(
|
||||
server=server, ping=ping, datetime=execution_datetime_utc
|
||||
)
|
||||
)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,30 @@
|
|||
import config
|
||||
import urllib.parse as parse
|
||||
import ping3
|
||||
import model
|
||||
import datetime
|
||||
|
||||
|
||||
def ping():
|
||||
servers = config.get_servers()
|
||||
execution_datetime = datetime.datetime.now()
|
||||
print("Ping at {time}".format(time=execution_datetime))
|
||||
for server_name in servers:
|
||||
server = servers[server_name]
|
||||
url = server["url"]
|
||||
named_tup = parse.urlparse(url)
|
||||
netloc = named_tup.netloc
|
||||
port_loc = netloc.find(":")
|
||||
if port_loc > 0:
|
||||
addr = netloc[0:port_loc]
|
||||
else:
|
||||
addr = netloc
|
||||
ping_delay = ping3.ping(addr, timeout=5) * 1000 # in millionsecond
|
||||
print('Ping delay for {serv} is {ping_val}'.format(serv=server_name,ping_val=ping_delay))
|
||||
model.add_ping_record(execution_datetime, server_name, ping_delay)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
config.init_config()
|
||||
ping()
|
||||
pass
|
||||
|
|
@ -1,3 +1,4 @@
|
|||
requests
|
||||
peewee
|
||||
mysqlclient
|
||||
ping3
|
||||
Loading…
Reference in New Issue