Я хочу сделать фоновый процесс в Django, который зацикливает некоторую функцию при нажатии кнопки запуска и останавливает зацикливание при нажатии кнопки остановки.Он должен работать, когда пользователь находится в автономном режиме (вышел из системы). Каждый пользователь должен иметь отдельный процесс.
До сих пор я решил использовать Threading
, но я пока не знаю, как это сделать.будет работать Я только что создал класс, который запускается или останавливается Threads
это выглядит так:
class Decide(threading.Thread):
"""Thread for making decision to buy or sell """
def __init__(self, name):
threading.Thread.__init__(self)
# flag to pause thread
self.paused = True
self.pause_cond = threading.Condition(threading.Lock())
self.pause_cond.acquire()
self.name = name
def run(self):
while True:
with self.pause_cond:
while self.paused:
self.pause_cond.wait()
# Buy_wait_sell()
print("I am looping~!!")
time.sleep(1)
def pause(self):
# Acquire to lock worker
self.paused = True
self.pause_cond.acquire()
# should just resume the thread
def resume(self):
self.paused = False
# Notify so thread will wake after lock released
self.pause_cond.notify()
# Now release the lock
self.pause_cond.release()
Это хорошая концепция?Как бы я назначил поток пользователю?Может быть, models
методы?Будет ли это на самом деле, когда я выйду из системы, или django убьет этот процесс?Что может быть неэффективным, когда поток будет запущен с созданием пользователя?