【问题标题】:Suggestions for a pluggable task framework in Django关于 Django 中可插拔任务框架的建议
【发布时间】:2010-05-17 12:48:31
【问题描述】:

我正在开发一个网站,旨在成为多种图像处理算法(称为“任务”)的 GUI。

目前,这些算法中只有一个完成了,但还会有更多(它们会有类似但不完全相同的工作流程)

基本上,该算法的工作原理如下(并不是说它很重要,只是为了清楚起见): 1)输入一些参数和输入图像 2) 运行算法第一部分 --算法运行-- 3) 审查中期结果 4)根据需要编辑参数,然后转到2。 5) 运行算法第二部分 --算法运行-- 6) 审查结果 7) 如果需要,调整一些中期结果,然后转到 5 8) 全部完成

我希望一些额外的任务具有相当相似的工作流程,尽管它们完全有可能不会。

因此,实现这一点的简单方法是为每个算法创建一个单独的 django 应用程序。

但是,我希望能够浏览已完成任务的排序列表(按完成时间),并为每个任务显示一个摘要(名称、描述、开始时间、缩略图)。

有没有人可以为我提供一些关于如何实现它的建议?我想让它尽可能简单,因此可以尽可能简单地“插入”其他任务。

【问题讨论】:

    标签: python django plugins


    【解决方案1】:

    我会制作一个具有Task 模型的非常抽象定义的应用程序。 Task 模型可能包含以下属性:

    • 输入参数,
    • 要运行的函数,
    • 提交任务的时间,
    • 任务实际运行的时间,以及
    • 结果(在完成之前类似于单例 Task.NotFinished)。

    您可以考虑使用twisted 来运行任务,因为:

    • twisted 具有经过精心设计和测试的异步任务实现;和
    • 您可以在其他处理器或机器上运行这些任务。

    【讨论】:

    • 感谢您的回复。现在我正在使用你建议的东西,用 celery 实现(它使用 RabbitMQ 作为负载处理程序)。尽管它工作正常,但问题在于一旦任务开始就无法与任务进行通信,这也是一项要求。我一定会调查扭曲的。虽然我认为我可能会拒绝对此的要求,直到我获得有关其他算法的更多信息。
    猜你喜欢
    • 2011-06-18
    • 1970-01-01
    • 2011-01-02
    • 2016-07-10
    • 1970-01-01
    • 2011-04-12
    • 1970-01-01
    • 2011-11-04
    • 1970-01-01
    相关资源
    最近更新 更多