【问题标题】:Background thread behind django projectdjango项目背后的后台线程
【发布时间】:2014-01-12 06:08:59
【问题描述】:

我从未在 Web 应用程序/服务方面工作过,并且不确定这是否适合我的工作: 我有数据收集系统从串口收集数据,并且还想使用 Web 服务将数据呈现给用户。我正在考虑创建一个 Django 项目来在网站上显示我的数据。此外,为了收集数据,我需要在网站启动时运行一些后台线程。我正在尝试在数据收集线程中重用我的 django 项目中定义的模型。

首先,我想知道这是否是一个合理的设计?如果是,有没有简单的方法可以做到这一点?我看到了很多关于使用 celery 的后台任务的主题,但这些都是非常复杂的场景。没有简单的方法吗?

【问题讨论】:

  • 当您说“串行端口”时,您是指客户端计算机上的this kind吗?
  • 我做了类似的事情,我创建了一个项目并将其部署在服务器上,但在另一台计算机上收集和上传数据有一个精简版本。是这个意思吗?

标签: python django multithreading background


【解决方案1】:

Celery 很好,如果你有任务需要在后台运行。例如,它可能是与网络工作者的交互(例如发送电子邮件、商店中的大量更新等),或者它可能是并行任务,当一个主工作者将任务发送到 celery 服务器(或服务器)时。

在你的情况下,我认为更好的解决方案是:

  • 创建一个守护程序,它将与您的 SERIAL PORT 进行无限循环通信并将数据保存在某处。
  • Web 工作者,它将读取这些数据并代表用户。
  • 如果需要类似长查询和繁重计算的用户,您可以将 Celery 添加到您的堆栈中,该 celery 将作为 Web Worker 工作,只需读取数据并将结果返回给 Web Worker。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多