sei lá
This commit is contained in:
@@ -29,7 +29,7 @@ O `docker-compose.yml` já sobe:
|
||||
Para o fluxo RTSP com Redis, use `docker-compose.redis-rtsp.yml`:
|
||||
|
||||
- `redis` como fila. Ele publica a porta `6379`, então workers externos podem apontar `REDIS_URL` para esse host.
|
||||
- `coordinator` para ler `camfinder-open-rtsp.csv` e alimentar a fila com blocos de IPs. O CSV também é copiado para a imagem, então o deploy não depende só de bind mount.
|
||||
- `coordinator` para ler `camfinder-open-rtsp.csv` e alimentar a fila com blocos de IPs. No modo simples/local, monte o repositório inteiro em `/app`.
|
||||
- `worker-1` e `worker-2` para consumir blocos, testar paths RTSP e salvar screenshots e SQLite.
|
||||
|
||||
Para escalar workers:
|
||||
@@ -38,6 +38,8 @@ Para escalar workers:
|
||||
|
||||
Para um worker em outra máquina, aponte `REDIS_URL` para o Redis do coordenador, por exemplo `redis://<host>:6379/0`, e use o mesmo `RTSP_QUEUE_NAME`.
|
||||
|
||||
Se estiver usando o compose local, monte `./:/app` para coordinator e workers RTSP. O coordinator lê `camfinder-open-rtsp.csv` e `rtsp_paths.txt` da raiz do repo.
|
||||
|
||||
Para workers de outras máquinas, use `vps.valmo.dev:666` como endereço do coordenador.
|
||||
|
||||
## Scripts
|
||||
|
||||
@@ -18,8 +18,7 @@ services:
|
||||
depends_on:
|
||||
- redis
|
||||
volumes:
|
||||
- ./camfinder-open-rtsp.csv:/app/camfinder-open-rtsp.csv:ro
|
||||
- ./dump:/app/dump
|
||||
- ./:/app
|
||||
|
||||
worker-1:
|
||||
build: .
|
||||
@@ -34,7 +33,7 @@ services:
|
||||
- redis
|
||||
- coordinator
|
||||
volumes:
|
||||
- ./dump:/app/dump
|
||||
- ./:/app
|
||||
|
||||
worker-2:
|
||||
build: .
|
||||
@@ -49,7 +48,7 @@ services:
|
||||
- redis
|
||||
- coordinator
|
||||
volumes:
|
||||
- ./dump:/app/dump
|
||||
- ./:/app
|
||||
|
||||
volumes:
|
||||
camfinder-redis:
|
||||
|
||||
@@ -13,7 +13,7 @@ services:
|
||||
environment:
|
||||
REDIS_URL: redis://redis:6379/0
|
||||
RTSP_QUEUE_NAME: camfinder:rtsp:queue
|
||||
RTSP_INPUT_CSV: /app/camfinder-open-rtsp.csv
|
||||
RTSP_INPUT_CSV: /usr/local/share/camfinder/camfinder-open-rtsp.csv
|
||||
RTSP_WORKER_COUNT: 2
|
||||
depends_on:
|
||||
- redis
|
||||
|
||||
+2
-2
@@ -61,7 +61,7 @@ impl Config {
|
||||
.unwrap_or_else(|| read_env("RTSP_QUEUE_NAME", "camfinder:rtsp:queue")),
|
||||
redis_input_csv: cli
|
||||
.redis_input_csv
|
||||
.unwrap_or_else(|| read_env("RTSP_INPUT_CSV", "camfinder-open-rtsp.csv")),
|
||||
.unwrap_or_else(|| read_env("RTSP_INPUT_CSV", "/app/camfinder-open-rtsp.csv")),
|
||||
redis_worker_count: cli
|
||||
.redis_worker_count
|
||||
.or_else(|| parse_usize("RTSP_WORKER_COUNT", 2).ok())
|
||||
@@ -463,7 +463,7 @@ fn load_rtsp_paths(file: Option<&Path>, inline: Option<&str>) -> Result<Vec<Stri
|
||||
}
|
||||
}
|
||||
|
||||
load_rtsp_paths_from_file(Path::new("rtsp_paths.txt"))
|
||||
load_rtsp_paths_from_file(Path::new("/app/rtsp_paths.txt"))
|
||||
}
|
||||
|
||||
fn load_rtsp_paths_from_file(file: &Path) -> Result<Vec<String>> {
|
||||
|
||||
+1
-1
@@ -79,7 +79,7 @@ pub async fn run_redis_worker(
|
||||
let mut processed = 0usize;
|
||||
let mut captured = 0usize;
|
||||
let paths = normalize_paths(&config.rtsp_paths);
|
||||
let credentials = load_rtsp_credentials(Path::new("main_ids.json"))?;
|
||||
let credentials = load_rtsp_credentials(Path::new("/app/main_ids.json"))?;
|
||||
|
||||
println!(
|
||||
"worker pronto para {} paths, {} credenciais e fila {}",
|
||||
|
||||
Reference in New Issue
Block a user