Features: 1) Add Redis sysctl configurations to docker-compose.yml; 2) Introduce broker heartbeat and transport options for Celery in settings/celery.py.
Fixes: 1) Extract and centralize broker transport options in `settings/celery.py`; 2) Remove redundant Celery settings from `celery.py`. Extra: 1) Cleanup and streamline Celery configuration in `celery.py`.
This commit is contained in:
parent
29005527bb
commit
f37206ed4e
3 changed files with 19 additions and 9 deletions
|
|
@ -68,6 +68,9 @@ services:
|
|||
env_file:
|
||||
- .env
|
||||
logging: *default-logging
|
||||
sysctls:
|
||||
net.ipv4.tcp_keepalive_time: 60
|
||||
vm.overcommit_memory: 1
|
||||
healthcheck:
|
||||
test: [ "CMD", "redis-cli", "-a", "$REDIS_PASSWORD", "ping" ]
|
||||
interval: 30s
|
||||
|
|
|
|||
|
|
@ -9,21 +9,14 @@ os.environ.setdefault("DJANGO_SETTINGS_MODULE", "evibes.settings")
|
|||
app = Celery("evibes")
|
||||
|
||||
app.conf.update(
|
||||
broker_url=f"redis://:{REDIS_PASSWORD}@redis:6379/0",
|
||||
result_backend=f"redis://:{REDIS_PASSWORD}@redis:6379/0",
|
||||
worker_hijack_root_logger=False,
|
||||
worker_log_format="[%(asctime)s: %(levelname)s/%(processName)s] %(name)s: %(message)s",
|
||||
worker_task_log_format="[%(asctime)s: %(levelname)s/%(processName)s] %(name)s: %(message)s",
|
||||
broker_connection_retry_on_startup=True,
|
||||
timezone=TIME_ZONE,
|
||||
task_serializer="json",
|
||||
result_serializer="json",
|
||||
result_compression="zlib",
|
||||
accept_content=["json"],
|
||||
broker_transport_options={
|
||||
"retry_policy": {"interval_start": 0.1, "interval_step": 0.2, "max_retries": 5},
|
||||
"visibility_timeout": 3600,
|
||||
},
|
||||
task_acks_late=True,
|
||||
task_reject_on_worker_lost=True,
|
||||
)
|
||||
|
|
|
|||
|
|
@ -5,8 +5,22 @@ from evibes.settings.base import REDIS_PASSWORD, TIME_ZONE
|
|||
CELERY_ENABLE_UTC = False
|
||||
CELERY_TIMEZONE = TIME_ZONE
|
||||
|
||||
CELERY_BROKER_URL = f"redis://:{REDIS_PASSWORD + '@'}redis:6379/0"
|
||||
CELERY_RESULT_BACKEND = f"redis://:{REDIS_PASSWORD + '@'}redis:6379/0"
|
||||
CELERY_BROKER_URL = f"redis://:{REDIS_PASSWORD}@redis:6379/0"
|
||||
|
||||
CELERY_BROKER_HEARTBEAT = 10
|
||||
CELERY_BROKER_HEARTBEAT_CHECKRATE = 2
|
||||
|
||||
CELERY_BROKER_POOL_LIMIT = 10
|
||||
CELERY_BROKER_TRANSPORT_OPTIONS = {
|
||||
"visibility_timeout": 3600,
|
||||
"retry_policy": {"interval_start": 0.1, "interval_step": 0.2, "max_retries": 5},
|
||||
"socket_keepalive": True,
|
||||
"socket_timeout": 30,
|
||||
"socket_connect_timeout": 30,
|
||||
"retry_on_timeout": True,
|
||||
}
|
||||
|
||||
CELERY_RESULT_BACKEND = CELERY_BROKER_URL
|
||||
|
||||
CELERY_BEAT_SCHEDULER = "django_celery_beat.schedulers.DatabaseScheduler"
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue