File size: 1,835 Bytes
25f22bf
 
 
 
 
 
 
 
 
 
 
 
e3d8d4f
25f22bf
 
 
 
e3d8d4f
25f22bf
 
 
 
e3d8d4f
25f22bf
 
 
 
 
e3d8d4f
25f22bf
e3d8d4f
25f22bf
 
 
 
 
 
 
 
 
e3d8d4f
25f22bf
 
e3d8d4f
25f22bf
e3d8d4f
25f22bf
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#!/usr/bin/env python
"""
Script to start Celery components for the Lin application.
This can be used to start Celery worker and beat scheduler separately.
"""
import os
import sys
import subprocess

def start_celery_worker():
    """Start the Celery worker."""
    print("Starting Celery worker...")
    os.system("celery -A backend.celery_app worker --loglevel=info")

def start_celery_beat():
    """Start the Celery beat scheduler."""
    print("Starting Celery beat scheduler...")
    os.system("celery -A backend.celery_beat_config beat --loglevel=info")

def start_celery_flower():
    """Start the Celery flower monitoring tool."""
    print("Starting Celery flower...")
    os.system("celery -A backend.celery_app flower")

if __name__ == "__main__":
    if len(sys.argv) < 2:
        print("Usage: python start_celery.py [worker|beat|flower|all]")
        sys.exit(1)

    command = sys.argv[1]

    if command == "worker":
        start_celery_worker()
    elif command == "beat":
        start_celery_beat()
    elif command == "flower":
        start_celery_flower()
    elif command == "all":
        # Start worker and beat in background processes
        worker_process = subprocess.Popen([
            "celery", "-A", "backend.celery_app", "worker", "--loglevel=info"
        ])
        beat_process = subprocess.Popen([
            "celery", "-A", "backend.celery_beat_config", "beat", "--loglevel=info"
        ])

        try:
            worker_process.wait()
            beat_process.wait()
        except KeyboardInterrupt:
            worker_process.terminate()
            beat_process.terminate()
            worker_process.wait()
            beat_process.wait()
    else:
        print(f"Unknown command: {command}")
        print("Usage: python start_celery.py [worker|beat|flower|all]")
        sys.exit(1)