Skip to content

Commit 939794d

Browse files
committed
chore: run in single process
1 parent 23502f3 commit 939794d

File tree

2 files changed

+11
-18
lines changed

2 files changed

+11
-18
lines changed

bases/renku_data_services/data_api/main.py

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
from renku_data_services.authz.admin_sync import sync_admins_from_keycloak
2121
from renku_data_services.base_models.core import APIUser
2222
from renku_data_services.data_api.app import register_all_handlers
23-
from renku_data_services.data_api.prometheus import setup_app_metrics, setup_prometheus
23+
from renku_data_services.data_api.prometheus import setup_prometheus
2424
from renku_data_services.errors.errors import (
2525
ForbiddenError,
2626
MissingResourceError,
@@ -36,27 +36,17 @@
3636
import sentry_sdk._types
3737

3838

39-
async def _solr_reindex(app: Sanic) -> None:
39+
async def solr_reindex(config: Config) -> None:
4040
"""Run a solr reindex of all data.
4141
4242
This might be required after migrating the solr schema.
4343
"""
44-
config = Config.from_env()
44+
logger.info("starting SOLR reindexing.")
4545
reprovision = config.search_reprovisioning
4646
admin = APIUser(is_admin=True)
4747
await reprovision.run_reprovision(admin)
4848

4949

50-
def solr_reindex(app_name: str) -> None:
51-
"""Runs a solr reindex."""
52-
app = Sanic(app_name)
53-
setup_app_metrics(app)
54-
55-
logger.info("Running SOLR reindex triggered by a migration")
56-
asyncio.set_event_loop(uvloop.new_event_loop())
57-
asyncio.run(_solr_reindex(app))
58-
59-
6050
def create_app() -> Sanic:
6151
"""Create a Sanic application."""
6252
config = Config.from_env()
@@ -145,15 +135,16 @@ async def do_solr_migrations(app: Sanic) -> None:
145135

146136
@app.before_server_start
147137
async def setup_rclone_validator(app: Sanic) -> None:
138+
logger.info("Setting up rclone validator")
148139
validator = RCloneValidator()
149140
app.ext.dependency(validator)
150141

151142
@app.main_process_ready
152-
async def ready(app: Sanic) -> None:
153-
"""Application ready event handler."""
154-
logger.info("starting events background job.")
155-
if getattr(app.ctx, "solr_reindex", False):
156-
app.manager.manage("SolrReindex", solr_reindex, {"app_name": app.name}, transient=True)
143+
async def do_solr_reindex(app: Sanic) -> None:
144+
"""Reindex solr if needed."""
145+
if not getattr(app.ctx, "solr_reindex", False):
146+
return
147+
app.add_task(solr_reindex(config), name="solr_reindex")
157148

158149
return app
159150

@@ -165,6 +156,7 @@ async def ready(app: Sanic) -> None:
165156
parser.add_argument("-p", "--port", default=8000, type=int, help="Port to listen on")
166157
parser.add_argument("--debug", action="store_true", help="Enable Sanic debug mode")
167158
parser.add_argument("--fast", action="store_true", help="Enable Sanic fast mode")
159+
parser.add_argument("--workers", default=1, type=int, help="The number of workers to use.")
168160
parser.add_argument("-d", "--dev", action="store_true", help="Enable Sanic development mode")
169161
parser.add_argument("--single-process", action="store_true", help="Do not use multiprocessing.")
170162
args: dict[str, Any] = vars(parser.parse_args())

projects/renku_data_service/Dockerfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,3 +47,4 @@ USER $USER_UID:$USER_GID
4747
WORKDIR /app
4848
COPY --from=builder /app/env ./env
4949
ENTRYPOINT ["tini", "-g", "--", "env/bin/python", "-m", "renku_data_services.data_api.main"]
50+
CMD ["--single-process"]

0 commit comments

Comments
 (0)