# ethanicbot/management/commands/runserver_with_celery.py
import os
import sys
from django.core.management.commands.runserver import Command as RunserverCommand
from subprocess import Popen
class Command(RunserverCommand):
def handle(self, *args, **options):
# Start the Django server
print("Starting Django development server...")
runserver_process = Popen([sys.executable, 'manage.py', 'runserver'])
# Start the Celery worker
print("Starting Celery worker...")
celery_process = Popen([sys.executable, 'manage.py', 'celery', 'worker', '--loglevel=info'])
# Wait for the Django server to terminate (if it does)
runserver_process.wait()
# Ensure Celery stops when Django server is stopped
celery_process.terminate()
celery_process.wait()