#redis #real-time #data #cache #transit #server #feed

bin+lib kactus-gtfs-rt

将数据存储在 Redis 中

1 个不稳定版本

0.1.0 2024 年 3 月 6 日

#2400数据库接口

自定义许可AGPL-3.0

430KB
4K SLoC

Rust 2.5K SLoC // 0.0% comments Python 1K SLoC // 0.1% comments Shell 32 SLoC // 0.1% comments

包含 (ZIP 文件, 18KB) transitland-atlas-vscode-extension-0.0.2.vsix

Kactus,一个 GTFS-rt 缓存

Kactus (Kyler 的自动缓存,用于交通统一和同步) 是一个用 Rust 编写的缓存服务器,并使用 Redis。它在 GPL 3.0 许可下开源。请提交问题和拉取请求!

由 Catenary Transit Initatives 数据中心托管

使用由 Catenary 服务器托管的 Kactus! https://kactus.catenarymaps.org/gtfsrt/?feed=[onestopid]&category=[category]

检查运行时间: https://stats.uptimerobot.com/xWx7zCm4p0

Onestop Feed IDs 应该来自 transitland/transitland-atlashttps://transit.land/

有效的分类有

  • 车辆
  • 行程
  • 警报

如果该分类不存在,API 将返回 404。

有效 URL 的示例 https://kactus.catenarymaps.org/gtfsrt/?feed=f-metro~losangeles~bus~rt&category=vehicles

了解有效的数据源和分类

有效数据源的列表在 https://kactus.catenarymaps.org/gtfsrttimes

手动调试

https://kactus.catenarymaps.org/gtfsrtasjson/?feed=[onestopid]&category=[category]

或使用 Rust-info 的原始数据 https://kactus.catenarymaps.org/gtfsrtasjson/?feed=[onestopid]&category=[category]&raw=true 如此 https://kactus.catenarymaps.org/gtfsrtasjson/?feed=f-metro~losangeles~bus~rt&category=vehicles&raw=true

安装

安装依赖项

arch linux

sudo pacman -S redis protobuf-compiler; sudo systemctl start redis-server;

ubuntu

sudo apt install protobuf-compiler build-essential gcc pkg-config libssl-dev postgresql unzip wget g++
sudo systemctl start redis-server

运行数据摄取引擎

cargo run --bin ingestv2

安装 Systemd 服务

sudo cp systemd* /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now kactus* zotgtfsrt.service

urls.csv 配置

如果 auth_type 设置为 url,则 urls 中的任何 PASSWORD 实例都将替换为 auth_password 的值

摄取文件的选项

您可以指定要使用的 urls 文件,但默认情况下,它是 urls.csv

cargo run --bin ingestv2 -- --urls public-urls.csv

您还可以添加 threads 参数

cargo run --bin ingestv2 -- --urls public-urls.csv --threads 10

您还可以添加以毫秒为单位的超时参数,默认为 15000 ms 即 15 秒。

---timeout 10000

基本上,这是通过在最后一个请求后几乎正好 30 秒后发送请求来绕过 429 速率限制错误。

首先,将您的metrolink密钥粘贴到文件 metrolink-key.txt

然后运行

cargo run --bin ingestmetrolink

对于贡献者

对于Unix用户,运行 git config core.hooksPath .githooks 是必需的。没有这个,请求将不会被合并。

目前Windows用户没有选项。请暂时尝试WSL Ubuntu。我们正在努力添加此功能。

依赖项

~50–69MB
~1.5M SLoC