4

所以我有一个由 Django 提供支持的网页。我在数据库中有一堆用户,我想每 5 到 10 分钟对数据库中的每个用户运行一次特定任务。最好的方法是什么?一次最多可以有 1000 个用户。像芹菜这样的东西对此有用吗?

4

3 回答 3

2

像芹菜这样的东西对这个有用吗

是的,Celery 带有内置的周期性任务:Celery Beat

另一种选择是PythonRQRQ Scheduler结合使用。这是我在最近的一个项目中使用的,我对此非常满意。

于 2012-12-07T03:06:51.957 回答
1

我认为下面是你想要的

http://code.google.com/p/django-cron/

Django - 设置计划作业?

或者你只是在 linux 级别使用 cron

如何设置 cron 的详细指南:

http://www.cyberciti.biz/faq/how-do-i-add-jobs-to-cron-under-linux-or-unix-oses/

linux中的cron作业将在预定义的时间间隔、分钟、每小时、每天、每周运行脚本

有关详细信息,您只需在 Linux 终端上键入“crontab -e”

crontab -e

然后加起来一行(任务)

1 2 3 4 5 /path/to/command arg1 arg2

1:分钟 (0-59) 2:小时 (0-23) 3:日 (0-31) 4:月 (0-12 [12 == 十二月]) 5:星期几(0-7 [7或 0 == sunday]) /path/to/command - 脚本或命令名称来安排

完成后,保存并退出。

于 2012-12-07T02:58:44.577 回答
0

“Celery”让 Python 应用程序(如 Django)轻松运行后台进程。它实际上最初是专门为 Django 构建的。

http://celeryproject.org/

他们的示例显示了一个简单的任务添加两个数字:

from celery.decorators import task

@task
def add(x, y):
    return x + y

您可以在后台执行任务,或等待它完成:

>>> result = add.delay(8, 8)
>>> result.wait() # wait for and return the result
16

以下是有关“cron”式计划任务的信息:http: //docs.celeryproject.org/en/latest/reference/celery.schedules.html

您可能还想安装RabbitMQ以使其正常工作,因此它可能比您正在寻找的解决方案更复杂,但它会实现您的目标。如果您愿意(包括使用数据库本身)并且您了解限制,也可以使用更轻量级的方法来安装它。

于 2012-12-07T03:02:44.107 回答