mirror of
https://github.com/bellingcat/auto-archiver-api.git
synced 2026-06-10 12:38:35 +03:00
27 lines
820 B
Python
27 lines
820 B
Python
from functools import lru_cache
|
|
|
|
from celery import Celery
|
|
|
|
import redis
|
|
from app.shared.settings import get_settings
|
|
|
|
|
|
@lru_cache
|
|
def get_celery(name: str = "") -> Celery:
|
|
return Celery(
|
|
name,
|
|
broker_url=get_settings().celery_broker_url,
|
|
result_backend=get_settings().celery_broker_url,
|
|
broker_connection_retry_on_startup=True,
|
|
broker_transport_options={
|
|
"queue_order_strategy": "priority",
|
|
"visibility_timeout": 43200, # 12 hours - must be > longest task time_limit
|
|
},
|
|
result_expires=86400, # expire task results after 24 hours to prevent Redis memory buildup
|
|
worker_cancel_long_running_tasks_on_connection_loss=True,
|
|
)
|
|
|
|
|
|
def get_redis() -> redis.Redis:
|
|
return redis.Redis.from_url(get_settings().celery_broker_url)
|