У меня есть проект django 3, который должен иметь возможность создавать поток и затем останавливать его при вызове определенного URL. Моя идея состояла в том, чтобы сделать модель с метаданными Thread. Поток будет иметь ссылку на свой объект метаданных и регулярно проверять логический флаг. Когда флаг установлен, он будет прекращен.
class Process(models.Model):
termination_flag = models.BooleanField(default=False)
def check_termination(self):
return self.termination_flag
def stop(self):
print('Stopping process')
self.termination_flag = True
self.save()
print(self.termination_flag)
class MyProcess():
process = None
def set_tweepy_stream(self,tweepy_stream):
self.tweepy_streams.append(tweepy_stream)
def set_process(self,process ):
self.process = process
def on_event(self, status):
print('Term flag: ' + str(self.process.check_termination()))
Но это не работает. Когда я вызываю метод Process.stop (), возвращается следующий вывод:
Stopping process
True
Однако при каждом последующем вызове MyProcess.on_event для флага всегда устанавливается значение False. В то же время объект MyProcess вызывает другие методы класса Process, включая функцию счетчика, которая работает правильно. Почему это происходит? Есть идеи, как мне достичь своей цели?