feat: start celery worker programmatically (#2988)
### Description Allow us to be more flexible with the option passed the celery worker, for example, to change the logging level.
This commit is contained in:
parent
7040d0e4bd
commit
9c548b365e
|
@ -201,14 +201,7 @@ RUN --mount=type=cache,target=/root/.cache/pip \
|
|||
USER ${UID}:${GID}
|
||||
WORKDIR /app
|
||||
|
||||
CMD ["/usr/local/bin/celery", "worker", \
|
||||
"--app=libretime_worker.tasks:worker", \
|
||||
"--config=libretime_worker.config", \
|
||||
"--beat", \
|
||||
"--time-limit=1800", \
|
||||
"--concurrency=1", \
|
||||
"--loglevel=info"]
|
||||
|
||||
CMD ["/usr/local/bin/libretime-worker"]
|
||||
ARG LIBRETIME_VERSION
|
||||
ENV LIBRETIME_VERSION=$LIBRETIME_VERSION
|
||||
|
||||
|
|
|
@ -22,14 +22,7 @@ Environment=LIBRETIME_CONFIG_FILEPATH=@@CONFIG_FILEPATH@@
|
|||
Environment=LIBRETIME_LOG_FILEPATH=@@LOG_DIR@@/worker.log
|
||||
WorkingDirectory=@@WORKING_DIR@@/worker
|
||||
|
||||
ExecStart=/usr/bin/sh -c '@@VENV_DIR@@/bin/celery worker \
|
||||
--app=libretime_worker.tasks:worker \
|
||||
--config=libretime_worker.config \
|
||||
--beat \
|
||||
--time-limit=1800 \
|
||||
--concurrency=1 \
|
||||
--loglevel=INFO \
|
||||
--logfile=$LIBRETIME_LOG_FILEPATH'
|
||||
ExecStart=/usr/local/bin/libretime-worker
|
||||
Restart=always
|
||||
|
||||
User=libretime
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
from pathlib import Path
|
||||
from typing import Optional
|
||||
|
||||
import click
|
||||
from libretime_shared.cli import cli_logging_options
|
||||
from libretime_shared.config import DEFAULT_ENV_PREFIX
|
||||
|
||||
from .config import __name__ as config_module
|
||||
from .tasks import worker
|
||||
|
||||
|
||||
@click.command(context_settings={"auto_envvar_prefix": DEFAULT_ENV_PREFIX})
|
||||
@cli_logging_options()
|
||||
def cli(log_level: str, log_filepath: Optional[Path]):
|
||||
"""
|
||||
Run celery.
|
||||
"""
|
||||
args = [
|
||||
f"--config={config_module}",
|
||||
"--beat",
|
||||
"--time-limit=1800",
|
||||
"--concurrency=1",
|
||||
f"--loglevel={log_level}",
|
||||
]
|
||||
if log_filepath is not None:
|
||||
args.append(f"--logfile={log_filepath}")
|
||||
|
||||
worker.worker_main(args)
|
|
@ -15,6 +15,11 @@ setup(
|
|||
},
|
||||
license="MIT",
|
||||
packages=find_packages(exclude=["*tests*", "*fixtures*"]),
|
||||
entry_points={
|
||||
"console_scripts": [
|
||||
"libretime-worker=libretime_worker.main:cli",
|
||||
]
|
||||
},
|
||||
python_requires=">=3.8",
|
||||
install_requires=[
|
||||
"celery==4.4.7",
|
||||
|
|
Loading…
Reference in New Issue