Python 后台运行
Python function in background
我想运行独立一个函数。从我调用的函数中,我想要 return 而不等待其他函数结束。
我用threadind试过了,不过这个要等,完了。
thread = threading.Thread(target=myFunc)
thread.daemon = True
thread.start()
return 'something'
是否可以立即return而另一个进程仍然运行?
感谢您的回答。
已编辑
工作代码如下所示:
import concurrent.futures
executor = concurrent.futures.ThreadPoolExecutor(2)
executor.submit(myFunc, arg1, arg2)
如果我没有正确理解你的请求,你可能想看看工作队列
https://www.djangopackages.com/grids/g/workers-queues-tasks/
基本上,将工作卸载到在视图中创建的线程并不是一个好主意,这通常是通过后台工作池(进程、线程)和传入请求队列来处理的。
我认为您使用的语法是正确的,我不明白为什么您的请求不应该立即 return。您是否确认请求实际上挂起直到线程结束?
我建议设置 myFunc
写入一个文件供您跟踪
def myFunc():
f = open('file.txt', 'w')
while True:
f.write('hello world')
您或多或少在问以下问题:
Is it possible to run function in a subprocess without threading or writing a separate file/script
您必须像这样更改 link 中的示例代码:
from multiprocessing import Process
def myFunc():
pass # whatever function you like
p = Process(target=myFunc)
p.start() # start execution of myFunc() asychronously
print)'something')
p.start() 是异步执行的,即 'something' 会立即打印出来,无论 myFunc() 的执行有多耗时。脚本执行 myFunc() 并且不等待它完成。
我想运行独立一个函数。从我调用的函数中,我想要 return 而不等待其他函数结束。
我用threadind试过了,不过这个要等,完了。
thread = threading.Thread(target=myFunc)
thread.daemon = True
thread.start()
return 'something'
是否可以立即return而另一个进程仍然运行? 感谢您的回答。
已编辑 工作代码如下所示:
import concurrent.futures
executor = concurrent.futures.ThreadPoolExecutor(2)
executor.submit(myFunc, arg1, arg2)
如果我没有正确理解你的请求,你可能想看看工作队列 https://www.djangopackages.com/grids/g/workers-queues-tasks/
基本上,将工作卸载到在视图中创建的线程并不是一个好主意,这通常是通过后台工作池(进程、线程)和传入请求队列来处理的。
我认为您使用的语法是正确的,我不明白为什么您的请求不应该立即 return。您是否确认请求实际上挂起直到线程结束?
我建议设置 myFunc
写入一个文件供您跟踪
def myFunc():
f = open('file.txt', 'w')
while True:
f.write('hello world')
您或多或少在问以下问题:
Is it possible to run function in a subprocess without threading or writing a separate file/script
您必须像这样更改 link 中的示例代码:
from multiprocessing import Process
def myFunc():
pass # whatever function you like
p = Process(target=myFunc)
p.start() # start execution of myFunc() asychronously
print)'something')
p.start() 是异步执行的,即 'something' 会立即打印出来,无论 myFunc() 的执行有多耗时。脚本执行 myFunc() 并且不等待它完成。