【问题标题】:Storing repeated Complex Calculations and serving through tastypie api存储重复的复杂计算并通过tastepie api提供服务
【发布时间】:2013-06-27 15:29:47
【问题描述】:
我有一个 Django 应用程序,它为 apis 使用了美味的派。当我点击 url 并仅获取特定用户所需的数据时,python 模块会进行复杂的财务计算。对于计算,一些数据是从 postgress 中获取的,而另一些是从 mongodb 中获取的。
我不希望在我点击 url 时完成计算,它应该在 3 分钟内完成一次并存储在内存中。当我点击 url 时。它应该获取当前用户可用的数据,而不是获取所有数据。
告诉我如何做到这一点!我不知道在哪里看!
任何帮助都会很棒。
【问题讨论】:
标签:
python
django
mongodb
caching
tastypie
【解决方案1】:
1。为缓存数据制作数据库模型。
Django docs
2。创建一个执行计算并将其存储到模型 1 的 manage.py 命令。
project/calcucaltion_app/management/commands/calculate_data.py
from django.core.management.base import BaseCommand
from calculation_app.models import my_model
class Command(BaseCommand):
args = "No arguments needed"
help = "This script calculates financial data and caches it"
def handle(self, *args, **options):
# TODO code here
记得将空的__init__.py 放入management 和commands 文件夹中。在此之后,您可以使用./manage.py calculate_data 调用您的脚本,并且该脚本将可以访问 django ORM。请参阅Django documentation 了解更多信息。
3。创建一个每 3 分钟触发一次并从 2 调用命令的 cron 作业。
在您的 linux 服务器上运行 crontab -e 并添加:
*/3 * * * * /path/to/django/manage.py calculate_data
如果您设置了virtualenv,您可能需要进行调整。
4。制作一个可处理从 1 中的模型获取数据的美味派模型。
Tastypie docs