1.更新了requirement

2.加入了ping的功能。
This commit is contained in:
facat 2019-06-19 21:12:26 +08:00
parent dcc7f3d186
commit 0323f5a3bb
6 changed files with 62 additions and 14 deletions

View File

@ -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

View File

@ -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"]

View File

@ -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.")

View File

@ -6,11 +6,24 @@ mysql_db = MySQLDatabase(
)
def add_record(execution_datetime,server, speed):
execution_datetime_utc = execution_datetime-datetime.timedelta(hours=8)#转换为UTC时间。
def add_record(execution_datetime, server, speed):
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
)
)

30
ping.py Normal file
View File

@ -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

View File

@ -1,3 +1,4 @@
requests
peewee
mysqlclient
ping3