diff --git a/Makefile b/Makefile index 3dfea6a7a846f6f297572962aa6f6be986a4cf7b..808b8283bc4305e684c420fec727481b97b469fe 100644 --- a/Makefile +++ b/Makefile @@ -23,6 +23,8 @@ list: @echo " phpcs > Run php code sniffer test suite" @echo " install_services > install services dependencies (virtualenv)" @echo " shell_services > Shell into python services" + @echo " install_tasks > install tasks dependencies (virtualenv)" + @echo " shell_tasks > Shell into python tasks" @echo " create-db > Create a database for dev only (need token_enabled=0)" @echo " remove-pgdata > Remove the anis-next database" @echo "" @@ -91,6 +93,12 @@ install_services: shell_services: @docker-compose exec services bash +install_tasks: + @docker run --init -it --rm --user $(UID):$(GID) -v $(CURDIR)/tasks:/project -w /project python:3.8 /bin/bash -c "python3 -m venv venv && source /project/venv/bin/activate && pip install -r requirements.txt" + +shell_tasks: + @docker-compose exec tasks bash + create-db: @docker-compose exec server sh /mnt/init-keycloak.sh @docker-compose exec server sh /mnt/create-db.sh diff --git a/client/src/app/instance/search/services/download.service.ts b/client/src/app/instance/search/services/download.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..2fa8241df91a05991141027afa35385b51ee01f8 --- /dev/null +++ b/client/src/app/instance/search/services/download.service.ts @@ -0,0 +1,13 @@ +import { HttpClient } from "@angular/common/http"; +import { Observable } from "rxjs"; + +export class DownloadService { + constructor(private http: HttpClient) { } + + download(url: string): Observable<Blob> { + return this.http.get(url, { + reportProgress: true, + responseType: 'blob' + }); + } +} diff --git a/tasks/requirements.txt b/tasks/requirements.txt index 8d953796cc671e3342d4a2ea4db9411dff9ca2c6..1bb63938e72440bceb9408c5496f18a608ae2b71 100644 --- a/tasks/requirements.txt +++ b/tasks/requirements.txt @@ -1,6 +1,9 @@ certifi==2021.10.8 charset-normalizer==2.0.12 +decorator==5.1.1 idna==3.3 pika==1.2.0 +py==1.11.0 requests==2.27.1 +retry==0.9.2 urllib3==1.26.8 diff --git a/tasks/src/anis_tasks/app.py b/tasks/src/anis_tasks/app.py index bc365abbf89d34cb85138cfa9e4159e7fa13928d..810e581cecd495254e71148f7545d5561383696b 100644 --- a/tasks/src/anis_tasks/app.py +++ b/tasks/src/anis_tasks/app.py @@ -3,10 +3,12 @@ import logging, sys # Third party imports import pika +from retry import retry # Local application imports from anis_tasks import utils, archive +@retry(pika.exceptions.AMQPConnectionError, delay=5, jitter=(1, 3)) def run(): try: # Check config variables