擅长:python、mysql、java
<p>我继续在规模和生产中使用这个实现,没有任何问题。</p>
<p>装饰定义:</p>
<pre><code>def start_new_thread(function):
def decorator(*args, **kwargs):
t = Thread(target = function, args=args, kwargs=kwargs)
t.daemon = True
t.start()
return decorator
</code></pre>
<p>示例用法:</p>
<pre><code>@start_new_thread
def foo():
#do stuff
</code></pre>
<p>随着时间的推移,堆栈已经更新和转换,没有失败。</p>
<p>最初是Python2.4.7,Django 1.4,Gunicorn 0.17.2,现在是Python3.6,Django 2.1,女招待1.1。</p>
<p>如果您正在使用任何数据库事务,Django将创建一个新连接,需要手动关闭该连接:</p>
<pre><code>from django.db import connection
@postpone
def foo():
#do stuff
connection.close()
</code></pre>