我正在开发一个用于学习目的的电子邮件爬网程序我很难理解如何运行任务以及查看后台仍在运行的任务。
在我看来.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))
在任务中。我有:
from celery import task
from .craw import crawler
@task()
def startcraw(base,url,emails):
f = open('myfile','w')
f.write('hi theren') # 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