-
Notifications
You must be signed in to change notification settings - Fork 2
自有部署指南
TKP30 edited this page Jan 9, 2025
·
1 revision
欢迎使用CR-EMU-Tracker
! 本软件作为完整的真开源软件,可以轻松部署在自己的服务器上。
使用之前需要自行安装Python 3.7+
和MySQL Server
,详情可参考两者的官网。
安装环境完成后,在终端中执行python -m pip install -r requirements.txt
。等待执行完成后,如无问题可进行下一步。
自行配置MySQL
的数据库信息,并按照信息对parser.py
作如下修改:
# 数据库连接池
pool = PooledDB(
creator=pymysql,
maxconnections=10,
mincached=2,
blocking=True,
host="localhost", <- 改成你自己数据库的地址
user="root", <- 改成你自己数据库的用户,不建议使用root
password="123456", <- 改成你自己数据库的密码
database="traintrack" <- 改成数据库名
)
如果需要自行部署网络服务,则也需要对web.py
做出类似的修改。
另外,如果计算机资源充足,则可以修改parser.py
中线程数量以提升效率:
with ThreadPoolExecutor(30) as executor: <- 修改30为更大的数字,推荐为(CPU核数*2+1)
with tqdl.wrap_logging_for_tqdm(PBAR, logger=logger):
executor.map(parse_train_jl, get_train_list(day))
注意:盲目使用过大的数字会徒增线程池的开销,效率反而上不去。同时,应当适当避免对铁科院的服务器产生 DoS 攻击。虽然对方的服务器强度应该承受的住这个压力,但是可能会导致您的IP地址被封,影响家用正常购票。如果需要提升线程数量,建议适当修改停歇时间。
python parser.py --day=0
day
可以取0到10的数字,默认取0,代表爬取的日子。0代表今天,1代表明天,2代表后天,以此类推。
12306上一般会提供未来14天的数据,但临近调图和新线开通时会出现大批的缺失,因此不建议向7天后调整。
并不建议直接通过Python运行web.py
,该服务器仅仅是开发性质的。
相反,你应该使用专业的部署外壳,如Gunicorn
、uWSGI
等,详情可根据环境自行决定。