【发布时间】:2016-02-26 01:47:10
【问题描述】:
我在尝试找出使用 Django 运行具有特定要求的后台进程的最佳方法时遇到了麻烦。
我想做的事:
- 进程一旦启动就会无限循环运行(需要 2 个后台进程,不多也不少)
- 每个进程的启动/停止/Get_Status
- 能够访问 Postgres DB(排除子进程模块(我认为))
- 即使没有用户访问过该网站,该进程也会在启动后继续在后台运行。
编辑:
- 当我需要运行的任务启动时,它必须使用 DB 信息初始化自己,以便收集它需要的内容。初始化后,它将新信息与之前的结果进行比较以获得增量值。不幸的是,每次任务运行时都重新初始化会破坏这个目的,除非用户故意停止,否则它必须连续循环运行。
我考虑过的选项,但未能找到可靠的文档说明如何做我想做的事:
- 芹菜
- RQ
- django-background-task
我在 virtualenv 中的 requirements.txt(目前正在尝试让 celery 工作):
1 amqp==1.4.7
2 anyjson==0.3.3
3 billiard==3.3.0.21
4 celery==3.1.19
5 Django==1.8.6
6 django-crispy-forms==1.5.2
7 kombu==3.0.29
8 psycopg2==2.6.1
9 pytz==2015.7
10 redis==2.10.5
11 requests==2.8.1
12 uWSGI==2.0.11.2
13 wheel==0.24.0
如果我没有就我的问题提供足够的信息,我提前道歉(这是我第一次发帖)。
【问题讨论】:
-
为什么后台进程需要用Django写???
-
更重要的是,为什么您需要在无限循环上运行的进程,为什么特别是两个?您在这些过程中到底在做什么?
-
@AngelCruijff,这是我选择在其中完成项目其余部分的框架。
-
@DanielRoseman,这是我正在制作的应用程序的一部分,用于对属于我自己的域/网站/ips 进行定期扫描,以检查公开可见的恶意活动。它将使用“dig”、“whois”和“wget”。
标签: python django multithreading postgresql celery