繁体   English   中英

如何在Django中运行和查看芹菜任务?

[英]How to run and view celery task in Django?

我正在为研究目的而使用电子邮件爬网程序,但无法理解如何运行任务以及查看哪些任务仍在后台运行。

在我的views.py中:

def home(request):
form = SignUpForm(request.POST or None)
if form.is_valid():
    save_it= form.save(commit=False)
    save_it.save()
    messages.success(request,"Working, please wait........")
    baseurl=form.cleaned_data['site']
    maxemails=form.cleaned_data['max_emails']
    maxurl=form.cleaned_data['max_links']
    startcraw.delay(baseurl,maxurl,maxemails)
    return HttpResponseRedirect('/done/')
#form not valid
return render_to_response("signup.html",locals(),context_instance=RequestContext(request))

在tasks.py中,我有:

from celery import task
from .craw import crawler
@task()
def startcraw(base,url,emails):
    f = open('myfile','w')
    f.write('hi there\n') # python will convert \n to os.linesep
    f.close()
    list= crawler(base,url,emails)
    list.save()

我尝试使用写入文件行进行调试

我怎么知道爬行器是否还在运行以及如何将结果保存/拉到我的数据库(SQLite)中,将不胜感激

您需要使用Celery Logger。 简单的例子:

from celery.utils.log import get_task_logger

logger = get_task_logger(__name__)

@app.task
def add(x, y):
    logger.info('started adding function at time {0}'.format(datetime.now()))
    return x + y

它的描述如下: http : //docs.celeryproject.org/en/latest/userguide/tasks.html#logging实际上Celery有很好的文档,因此可以在此处找到所有信息。 另外,我认为您需要诸如抓取之类的目标计划任务。 http://celery.readthedocs.org/en/latest/userguide/periodic-tasks.html

暂无
暂无

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

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