繁体   English   中英

运行定期任务

[英]Run periodic tasks

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

像芹菜这样的东西是有用的

是的,Celery带有内置的perodic任务: Celery Beat

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

我认为以下是你想要的

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 job将以预定义的时间间隔,分钟,每小时,每天,每周运行脚本

有关详细信息,只需在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 == 12月])5:星期几(0-7 [7]或0 == sunday])/ path / to / command - 要安排的脚本或命令名称

完成后,保存并退出。

“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以使其正常工作,因此它可能比您正在寻找的解决方案更复杂,但它将实现您的目标。 如果您愿意(也包括使用数据库本身)并且了解其局限性,还有更轻量级的方法来安装它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM