【问题标题】: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 放入managementcommands 文件夹中。在此之后,您可以使用./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

    【讨论】:

    • 很棒的答案!!与步骤 2 相关的任何链接。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-25
    • 2020-09-06
    • 2017-08-31
    • 2019-05-05
    • 1970-01-01
    • 2015-07-10
    • 2019-09-03
    相关资源
    最近更新 更多