Django中的缓存库任务队列
我正在通过Django为各种Python脚本创建一个网页界面。
在计算脚本 calculation.py 中,我会有这样的内容:
import datetime
def add_time(a, b):
return = a + b + int(datetime.datetime.now())
使用示例:
- 用户可以说“我想用参数 [1, 3] 运行 calculation.py 中的加法”,然后等结果出来。
- 用户可以说“我想每10分钟运行一次 calculation.py 中的加法,参数是 [1, 3],并检查结果是否大于 X”,如果是的话就执行某个操作。
我的大部分脚本函数执行得很快,但它们需要导入一些加载起来比较慢的库。
目前我直接在Django服务中处理这些;这样做简单,而且只加载一次库,这样后续的调用就会很快。但有时候会有一些比较重的调用,这会拖慢整个Django应用的速度。如果我想为某些脚本设置定时任务(CRON),我感觉受到了限制。因此,我在寻找其他解决方案。
我开始关注以下几个选项:
- Celery(但似乎在Windows上不再支持)
- Huey 和 Dramatiq
- Django-Q2(与Django配合使用很简单)
根据我的理解,没有任何方案能够缓存已经导入的库。(如果需要,我可以接受“启动时批量导入”)。有没有人能给我一些建议,看看我应该关注哪里,或者我可以调整上述哪些解决方案?
要求:我需要这个在Windows上运行,因为我的一些库依赖于Windows。
1 个回答
0
最后我使用了Django-q2,并利用应用程序的初始化功能来加载qcluster调用所需的库。