Skip to content

Commit 19193d1

Browse files
Merge pull request #105 from pitangainnovare/impl/include-publisher
Impl/include publisher
2 parents af54bde + 7da6aaf commit 19193d1

File tree

17 files changed

+102
-16
lines changed

17 files changed

+102
-16
lines changed

.envs/.local/.django

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,16 @@
22
# ------------------------------------------------------------------------------
33
USE_DOCKER=yes
44
IPYTHONDIR=/app/.ipython
5+
56
# Redis
67
# ------------------------------------------------------------------------------
78
REDIS_URL=redis://redis:6379/0
89

910
# Celery
1011
# ------------------------------------------------------------------------------
12+
CELERY_BROKER_URL=redis://redis:6379/0
1113

1214
# Flower
15+
# ------------------------------------------------------------------------------
1316
CELERY_FLOWER_USER=PhFRdLexbrsBvrrbSXxjcMMOcVOavCrZ
1417
CELERY_FLOWER_PASSWORD=QgScyefPrYhHgO6onW61u0nazc5xdBuP4sM7jMRrBBFuA2RjsFhZLp7xbVYZbrwR

.envs/.local/.postgres

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,5 @@ POSTGRES_PORT=5432
55
POSTGRES_DB=scielo_usage
66
POSTGRES_USER=GVRFlLmcCNfGLhsFvSnCioYOPJPYpyfj
77
POSTGRES_PASSWORD=BQ4hSUL4rdj5WZLdR8ilDLRQMvCtzo0caMaXDO0olGsmycQjlcZlTVK9DepZR8kk
8+
9+
DATABASE_URL=postgres://GVRFlLmcCNfGLhsFvSnCioYOPJPYpyfj:BQ4hSUL4rdj5WZLdR8ilDLRQMvCtzo0caMaXDO0olGsmycQjlcZlTVK9DepZR8kk@postgres:5432/scielo_usage

.envs/.production/.django

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ REDIS_URL=redis://redis:6379/0
99

1010
# Celery
1111
# ------------------------------------------------------------------------------
12+
CELERY_BROKER_URL=redis://redis:6379/0
1213

1314
# Flower
1415
# ------------------------------------------------------------------------------

.envs/.production/.minio

Lines changed: 0 additions & 4 deletions
This file was deleted.

.envs/.production/.postgres

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,5 @@ POSTGRES_PORT=5432
55
POSTGRES_DB=scielo_usage
66
POSTGRES_USER=GVRFlLmcCNfGLhsFvSnCioYOPJPYpyfj
77
POSTGRES_PASSWORD=BQ4hSUL4rdj5WZLdR8ilDLRQMvCtzo0caMaXDO0olGsmycQjlcZlTVK9DepZR8kk
8+
9+
DATABASE_URL=postgres://GVRFlLmcCNfGLhsFvSnCioYOPJPYpyfj:BQ4hSUL4rdj5WZLdR8ilDLRQMvCtzo0caMaXDO0olGsmycQjlcZlTVK9DepZR8kk@postgres:5432/scielo_usage

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.13.0
1+
1.13.1

article/tasks.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
User = get_user_model()
2222

23-
@celery_app.task(bind=True, name=_('Load article data from Article Meta'), timelimit=-1)
23+
@celery_app.task(bind=True, name=_('Load article data from Article Meta'), timelimit=-1, queue='load')
2424
def task_load_article_from_article_meta(self, from_date=None, until_date=None, days_to_go_back=None, collection=None, issn=None, force_update=True, user_id=None, username=None):
2525
user = _get_user(self.request, username=username, user_id=user_id)
2626

@@ -91,7 +91,7 @@ def task_load_article_from_article_meta(self, from_date=None, until_date=None, d
9191
return True
9292

9393

94-
@celery_app.task(bind=True, name=_('Load article data from OPAC'), timelimit=-1)
94+
@celery_app.task(bind=True, name=_('Load article data from OPAC'), timelimit=-1, queue='load')
9595
def task_load_article_from_opac(self, collection='scl', from_date=None, until_date=None, days_to_go_back=None, page=1, force_update=True, user_id=None, username=None):
9696
user = _get_user(self.request, username=username, user_id=user_id)
9797

@@ -156,7 +156,7 @@ def task_load_article_from_opac(self, collection='scl', from_date=None, until_da
156156
return True
157157

158158

159-
@celery_app.task(bind=True, name=_('Load preprint data from SciELO Preprints'), timelimit=-1)
159+
@celery_app.task(bind=True, name=_('Load preprint data from SciELO Preprints'), timelimit=-1, queue='load')
160160
def task_load_preprints_from_preprints_api(self, from_date=None, until_date=None, days_to_go_back=None, force_update=True, user_id=None, username=None):
161161
user = _get_user(self.request, username=username, user_id=user_id)
162162

@@ -206,7 +206,7 @@ def task_load_preprints_from_preprints_api(self, from_date=None, until_date=None
206206
continue
207207

208208

209-
@celery_app.task(bind=True, name=_('Load dataset metadata from Dataverse'), timelimit=-1)
209+
@celery_app.task(bind=True, name=_('Load dataset metadata from Dataverse'), timelimit=-1, queue='load')
210210
def task_load_dataset_metadata_from_dataverse(self, from_date=None, until_date=None, days_to_go_back=None, force_update=True, user_id=None, username=None):
211211
user = _get_user(self.request, username=username, user_id=user_id)
212212

compose/local/django/celery/worker/start

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,22 @@
33
set -o errexit
44
set -o nounset
55

6+
# Worker padrão
7+
watchgod celery.__main__.main --args -A config.celery_app worker -l INFO --concurrency=1 -n worker.default@%h &
68

7-
watchgod celery.__main__.main --args -A config.celery_app worker -l INFO --concurrency=1
9+
# Worker para load e validação de dados
10+
watchgod celery.__main__.main --args -A config.celery_app worker -l INFO --concurrency=4 -Q load -n worker.load@%h &
11+
12+
# Worker para scl
13+
watchgod celery.__main__.main --args -A config.celery_app worker -l INFO --concurrency=1 -Q parse_xlarge -n worker.parse_xlarge@%h &
14+
15+
# Worker para chl col mex
16+
watchgod celery.__main__.main --args -A config.celery_app worker -l INFO --concurrency=1 -Q parse_large -n worker.parse_large@%h &
17+
18+
# Worker para cri esp psi prt ven
19+
watchgod celery.__main__.main --args -A config.celery_app worker -l INFO --concurrency=1 -Q parse_medium -n worker.parse_medium@%h &
20+
21+
# Worker para arg bol cub data ecu per preprints pry rve spa sss sza ury wid
22+
watchgod celery.__main__.main --args -A config.celery_app worker -l INFO --concurrency=1 -Q parse_small -n worker.parse_small@%h &
23+
24+
wait

compose/production/django/celery/worker/start

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,22 @@ set -o errexit
44
set -o pipefail
55
set -o nounset
66

7+
# Worker padrão
8+
celery -A config.celery_app worker -l INFO --concurrency=1 -n worker.default@%h &
79

8-
exec celery -A config.celery_app worker -l INFO --concurrency=1
10+
# Worker para load e validação de dados
11+
celery -A config.celery_app worker -l INFO --concurrency=4 -Q load -n worker.load@%h &
12+
13+
# Worker para parse_scl (coleções extra-grandes)
14+
celery -A config.celery_app worker -l INFO --concurrency=1 -Q parse_xlarge -n worker.parse_xlarge@%h &
15+
16+
# Worker para chl col mex (coleções grandes)
17+
celery -A config.celery_app worker -l INFO --concurrency=1 -Q parse_large -n worker.parse_large@%h &
18+
19+
# Worker para cri esp psi prt ven (coleções médias)
20+
celery -A config.celery_app worker -l INFO --concurrency=1 -Q parse_medium -n worker.parse_medium@%h &
21+
22+
# Worker para arg bol cub data ecu per preprints pry rve spa sss sza ury wid (coleções pequenas)
23+
celery -A config.celery_app worker -l INFO --concurrency=1 -Q parse_small -n worker.parse_small@%h &
24+
25+
wait

config/settings/base.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -411,3 +411,29 @@
411411
ES_API_KEY = env("ES_API_KEY", default="")
412412
ES_BASIC_AUTH = env("ES_BASIC_AUTH", default=("elastic", "iHktg66E"))
413413
ES_VERIFY_CERTS = env.bool("ES_VERIFY_CERTS", default=False)
414+
415+
# Collection size categories
416+
# ------------------------------------------------------------------------------
417+
EXTRA_LARGE_COLLECTIONS = env.list("EXTRA_LARGE_COLLECTIONS", default=["scl"])
418+
LARGE_COLLECTIONS = env.list("LARGE_COLLECTIONS", default=["chl", "col", "mex"])
419+
MEDIUM_COLLECTIONS = env.list("MEDIUM_COLLECTIONS", default=["cri", "esp", "psi", "prt", "ven"])
420+
SMALL_COLLECTIONS = env.list("SMALL_COLLECTIONS", default=["arg", "bol", "cub", "data", "ecu", "per", "preprints", "pry", "rve", "spa", "sss", "sza", "ury", "wid"])
421+
422+
# Collection size mapping
423+
def _build_collection_size_map():
424+
"""Build mapping of collection acronyms to their size categories."""
425+
size_map = {}
426+
size_categories = {
427+
"xlarge": EXTRA_LARGE_COLLECTIONS,
428+
"large": LARGE_COLLECTIONS,
429+
"medium": MEDIUM_COLLECTIONS,
430+
"small": SMALL_COLLECTIONS,
431+
}
432+
433+
for size, collections in size_categories.items():
434+
for acron3 in collections:
435+
size_map[acron3] = size
436+
437+
return size_map
438+
439+
COLLECTION_ACRON3_SIZE_MAP = _build_collection_size_map()

0 commit comments

Comments
 (0)