Skip to content

自有部署指南

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,该服务器仅仅是开发性质的。

相反,你应该使用专业的部署外壳,如GunicornuWSGI等,详情可根据环境自行决定。

Clone this wiki locally