Chandima Prabhath commited on
Commit
795176c
·
1 Parent(s): f27ea86

Refactor worker initialization in run.py to use subprocess for improved process management; add worker.py for dedicated worker handling

Browse files
Files changed (2) hide show
  1. run.py +9 -10
  2. video_encoder/worker.py +6 -0
run.py CHANGED
@@ -4,17 +4,16 @@ from rq import Worker, Queue
4
  from redis import Redis
5
  from video_encoder.config import RedisConfig
6
 
7
- import threading
8
  import uvicorn
9
  from video_encoder.api.main import app
10
- from rq import Worker
11
- from video_encoder.config import RedisConfig
12
-
13
- def start_worker():
14
- worker = Worker([RedisConfig.QUEUE_NAME], connection=RedisConfig.get_connection())
15
- worker.work()
16
 
17
  if __name__ == "__main__":
18
- worker_thread = threading.Thread(target=start_worker, daemon=True)
19
- worker_thread.start()
20
- uvicorn.run(app, host="0.0.0.0", port=7860, log_config=None)
 
 
 
 
 
 
4
  from redis import Redis
5
  from video_encoder.config import RedisConfig
6
 
7
+ import subprocess
8
  import uvicorn
9
  from video_encoder.api.main import app
 
 
 
 
 
 
10
 
11
  if __name__ == "__main__":
12
+ # Start worker in separate process
13
+ worker_process = subprocess.Popen(["python", "video_encoder/worker.py"])
14
+
15
+ try:
16
+ # Start API server
17
+ uvicorn.run(app, host="0.0.0.0", port=7860, log_config=None)
18
+ finally:
19
+ worker_process.terminate()
video_encoder/worker.py ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ from rq import Worker
2
+ from video_encoder.config import RedisConfig
3
+
4
+ if __name__ == "__main__":
5
+ worker = Worker([RedisConfig.QUEUE_NAME], connection=RedisConfig.get_connection())
6
+ worker.work()