【发布时间】:2013-03-26 10:40:44
【问题描述】:
在我的网站中,用户可以随时更新他们的个人资料(手动),或者每天自动更新一次。
这个任务现在正在用 celery 分发。
但我有一个“问题”:
每天,在自动更新中,一项作业将所有用户(+-6k 用户)放入队列:
from celery import group
from tasks import *
import datetime
from lastActivityDate.models import UserActivity
today = datetime.datetime.today()
one_day = datetime.timedelta(days=5)
today -= one_day
print datetime.datetime.today()
user_list = UserActivity.objects.filter(last_activity_date__gte=today)
g = group(update_user_profile.s(i.user.auth.username) for i in user_list)
print datetime.datetime.today()
print g(user_list.count()).get()
如果有人尝试手动更新,他们将进入队列并永远执行。
有没有办法将此手动任务设置为优先运行? 还是为每个单独的队列做一个专用的:手动和自动?
【问题讨论】:
-
您可以限制执行的任务数,例如以小时为单位。然后是另一个任务...阅读他们的文档...