django上长时间运行的守护进程

时间:2012-08-22 16:55:48

标签: python django celery django-celery

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

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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