某些功能应在Web服务器上异步运行。发送电子邮件或数据后处理是典型的用例。
编写装饰器函数以异步运行函数的最佳(或多数pythonic)方法是什么?
我的设置很常见:Python,Django,Gunicorn或Waitress,AWS EC2标准Linux
例如,这是一个开始:
from threading import Thread
def postpone(function):
def decorator(*args, **kwargs):
t = Thread(target = function, args=args, kwargs=kwargs)
t.daemon = True
t.start()
return decorator
所需用法:
@postpone
def foo():
pass #do stuff
我继续在大规模生产中使用此实现,没有任何问题。
装饰器定义:
def start_new_thread(function):
def decorator(*args, **kwargs):
t = Thread(target = function, args=args, kwargs=kwargs)
t.daemon = True
t.start()
return decorator
用法示例:
@start_new_thread
def foo():
#do stuff
随着时间的流逝,堆栈已更新并成功过渡。
最初是Python 2.4.7,Django 1.4,Gunicorn 0.17.2,现在是Python 3.6,Django 2.1,Waitress
1.1。
如果您正在使用任何数据库事务,则Django将创建一个新连接,需要手动关闭该连接:
from django.db import connection
@postpone
def foo():
#do stuff
connection.close()
问题内容: 因此,我敲了一些测试代码,以了解与线程相比,多处理模块如何在cpu绑定工作上扩展。在linux上,我获得了预期的性能提升: 我的双核Macbook Pro表现出相同的行为: 然后,我在Windows机器上进行了尝试,并得到了非常不同的结果。 为什么哦,为什么在Windows上多处理方法这么慢? 这是测试代码: 问题答案: 在UNIX变体下,过程轻巧得多。Windows进程很繁琐,需要花
问题内容: 关闭。 此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Stack Overflow的主题。 7年前关闭。 改善这个问题 是否可以使用任何基于Web的IDE进行快速测试?PHP有12种,甚至Java也有12种,但是我还没有发现它可以运行Python。如果有 可供我自己托管和运行的开源IDE ,那会更好。 谢谢 问题答案: 您可能想尝试一下: 试用Py
我正在编写一个 C# 应用程序来解码此字符串: "--W 3原文3 R hcn Rfd Gl tZ SI 6 I jAi L CJ w cm 9 k dW N 0 X 2 lk I jo iO D Q wM DMz MD气LC J 1 cm wi O iI if Sx 7 InN 0 Y XJ 0 X 3 Rp b WU iO iI 3 OS In by b 2 R 1 Y 3 Rfa WQ iO
SampleResult字段:ContentType:DataEncoding:null
我想设置pythonpath,但它不适用于其他目录。 我的朋友: 导出PYTHONPATH=/usr/lib/python2.7 导出PYTHONPATH=$PYTHONPATH/plat-linux2:$PYTHONPATH/lib-dynload:$PYTHONPATH/dist-包:$PYTHONPATH/lib-tk:$PYTHONPATH 如果我只保留第一行(单个目录) export P
问题内容: 我的团队和我正在基于无人机Parrot API的项目中工作。我们正在尝试找到一个API,以编写一个可以扫描无线网络并选择无人机ESSID的小程序。我们的主要语言是C,但Java也受到赞赏。 我试图查看iwlist / iwconfig命令是否存在任何API,但没有找到任何东西。有人可以帮我吗?任何示例(代码示例)也将不胜感激。 格拉西亚斯 问题答案: 使用较新的内核,用于管理无线卡的框
问题内容: 如果对某些人来说这太简单了,我感到抱歉,但是我仍然不了解python的多处理技巧。我已经阅读了 http://docs.python.org/dev/library/multiprocessing http://pymotw.com/2/multiprocessing/basics.html 以及Google给我的许多其他教程和示例…其中许多从这里也是。 好吧,我的情况是我必须计算许多
问题内容: 我想做的事: 我想计算一个使用多类问题 我试图做的是: 这是使用虹膜数据集制作的可复制示例。 我一个热编码我的目标 我使用决策树分类器 最后我执行交叉val 失败的原因: 最后一行抛出以下错误 我的环境: python == 3.7.2 sklearn == 0.19.2 我的问题: 是一个错误,还是我在误用? 问题答案: scikit-learn的交叉验证功能不必要的麻烦在于,默认情