""" Art DAG Celery Application Distributed rendering for the Art DAG system. Uses the foundational artdag language from GitHub. """ import os from celery import Celery REDIS_URL = os.environ.get('REDIS_URL', 'redis://localhost:6379/5') app = Celery( 'art_celery', broker=REDIS_URL, backend=REDIS_URL, include=['legacy_tasks', 'tasks', 'tasks.analyze', 'tasks.execute', 'tasks.orchestrate'] ) app.conf.update( result_expires=86400 * 7, # 7 days - allow time for recovery after restarts task_serializer='json', accept_content=['json', 'pickle'], # pickle needed for internal Celery messages result_serializer='json', event_serializer='json', timezone='UTC', enable_utc=True, task_track_started=True, task_acks_late=True, # Don't ack until task completes - survives worker restart worker_prefetch_multiplier=1, task_reject_on_worker_lost=True, # Re-queue if worker dies task_acks_on_failure_or_timeout=True, # Ack failed tasks so they don't retry forever ) if __name__ == '__main__': app.start()