Files

41 lines
1.0 KiB
Python

from multiprocessing import Process, Queue
import time
from typing import List
import os
class Worker(object):
def __init__(self, queue: Queue):
self.run_flag = True
self.queue = queue
self.process = Process(
target=self.handle_jobs,
args=(self.queue,)
)
time.sleep(1)
self.process.start()
def stop(self):
self.queue.put(['exit'])
self.process.join()
@staticmethod
def handle_jobs(queue: Queue):
while True:
if queue.empty():
time.sleep(1)
continue
cmd_list: List[str] = queue.get()
print('received job:\n', cmd_list)
if cmd_list[0].lower() == 'exit':
break
cmd_str = ' && '.join(cmd_list)
os.system(cmd_str)
if __name__ == '__main__':
work_queue: Queue = Queue()
worker = Worker(queue=work_queue)
work_queue.put(['echo "hello world"', 'echo "hello world again"'])
worker.stop()