index.htmlне может остановить процесс, когда он работает на Джанго
<html>
<head>
<title>Demo</title>
</head>
<body>
<form action="" method="POST" name="form">
{% csrf_token %}
<div>
<input type ="submit" value = "start" name = "start" >
<input type ="submit" value = "stop" name = "stop" >
</div>
</form>
</body>
</html>
Здесь views.py файл, используя многопоточность, я также попытался без резьбы, но при запуске процесса в Джанго сервере, он не может остановить или убийство.
#views.py
import time
from django.shortcuts import render_to_response
import threading
class IndexView(generic.TemplateView):
template_name = 'demo/index.html'
def post(self,request,*args,**kwargs):
flag1 = request.POST.get("start")
if flag1 == "start":
flag = "start"
flag1 = request.POST.get("stop")
if flag1 == "stop":
flag = "stop"
def job_test(arg):
t = threading.currentThread()
while getattr(t, "do_run", True):
print ("working on %s" % arg)
time.sleep(1)
print("Stopping as you wish.")
t = threading.Thread(target=job_test, args=("task",))
if flag == "stop":
time.sleep(10)
if flag == "start":
time.sleep(0)
t.join()
без резьбы
class IndexView(generic.TemplateView):
template_name = 'demo/index.html'
def post(self,request,*args,**kwargs):
flag1 = request.POST.get("start")
if flag1 == "start":
flag = "start"
flag1 = request.POST.get("stop")
if flag1 == "stop":
flag = "stop"
def job():
print("Processing Start..")
while flag == "start":
#job()
print ("job() call...")
demo_var1 = request.POST.get("stop")
if demo_var1 == "stop":
flag = "stop"
print("This is while flag inside : ",flag)
break
time.sleep(10)
Я хочу, чтобы начать процесс, когда кнопка пользователь нажимает кнопку запуска из браузера, остановить этот процесс от нажатия кнопки остановки.
Я не понял, почему код не может сломаться во время.
, пожалуйста, помогите найти решение.
Заранее спасибо.
Обычно для длительных задач вы должны использовать полностью отдельный процесс, например. [Сельдерей] (http://www.celeryproject.org/). –