【问题标题】:Long running daemon process on djangodjango上长时间运行的守护进程
【发布时间】:2012-08-18 03:49:14
【问题描述】:

我需要运行一个 python 脚本(它正在监听 Twitter),当它获取与特定主题标签匹配的推文时,它将在我的 django 应用程序上调用各种方法。

目前,我只是在命令行上手动运行脚本,但如果可能的话,我希望它在 django 中运行,以便我可以从那里控制它,因此它不必执行 HTTP POST它获取新数据。

我(简要地)看过 celery,但这对我来说似乎是为了定期执行某些小任务。

有没有办法使用 celery(或其他任何东西)来控制我拥有的这个长期运行的“听 Twitter”脚本?

【问题讨论】:

  • “定期执行某些小任务”似乎正是您在这里所做的。
  • 好吧,在读取匹配的推文时发生的数据库更新确实是定期运行的小任务。但是监听推文的监听过程是一个长期运行的(永久)python 脚本——我想知道 celery 是否可以处理。

标签: python django celery django-celery


【解决方案1】:

您应该Supervisord 来运行您的 django 应用程序和脚本。使脚本成为 Django 项目的一部分,将允许您使用 Django signals 来编写自定义信号,每次您的 twitter 逻辑完成它应该做的事情时都会发出该信号。 Signals 正在阻塞。如果您希望它们是异步的,请使用Celery with Django

另一种方法是通过supervisord 运行您的django 应用程序和twitter 脚本,然后公开一个REST API,该REST API 对Django 应用程序执行HTTP POST。你可以使用TastyPie

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-07-03
  • 2023-03-02
  • 1970-01-01
  • 2015-02-22
  • 1970-01-01
  • 1970-01-01
  • 2011-12-30
相关资源
最近更新 更多