2024-10-20 21:57:12 +00:00
|
|
|
import logging
|
|
|
|
import os
|
|
|
|
|
|
|
|
from celery import Celery
|
|
|
|
from celery import shared_task
|
2024-10-21 13:22:03 +00:00
|
|
|
from celery.schedules import crontab
|
2024-10-20 21:57:12 +00:00
|
|
|
|
|
|
|
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings')
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
app = Celery('mysite')
|
|
|
|
|
2024-10-21 13:22:03 +00:00
|
|
|
app.conf.beat_schedule = {
|
|
|
|
'periodical_servers_sync': {
|
|
|
|
'task': 'sync_all_servers',
|
2025-07-20 22:55:07 +03:00
|
|
|
'schedule': crontab(minute=0, hour='*/3'), # Every 3 hours
|
2024-10-21 13:22:03 +00:00
|
|
|
},
|
2025-07-20 22:50:22 +03:00
|
|
|
'cleanup_old_task_logs': {
|
|
|
|
'task': 'cleanup_task_logs',
|
|
|
|
'schedule': crontab(hour=2, minute=0), # Daily at 2 AM
|
|
|
|
},
|
2024-10-21 13:22:03 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2024-10-20 21:57:12 +00:00
|
|
|
app.config_from_object('django.conf:settings', namespace='CELERY')
|
|
|
|
|
2025-07-20 22:50:22 +03:00
|
|
|
# Additional celery settings for better logging and performance
|
|
|
|
app.conf.update(
|
|
|
|
# Keep detailed results for debugging
|
|
|
|
result_expires=3600, # 1 hour
|
|
|
|
task_always_eager=False,
|
|
|
|
task_eager_propagates=True,
|
|
|
|
# Improve task tracking
|
|
|
|
task_track_started=True,
|
|
|
|
task_send_sent_event=True,
|
|
|
|
# Clean up settings
|
|
|
|
result_backend_cleanup_interval=300, # Clean up every 5 minutes
|
|
|
|
)
|
|
|
|
|
2024-10-20 21:57:12 +00:00
|
|
|
app.autodiscover_tasks()
|
|
|
|
|