我正在尝试使用芹菜来尽可能地提高浏览器响应时间。我正在处理这个工作流程问题。
因此,在视图可以响应第3页的请求之前,需要检查芹菜任务是否完成。
我目前的想法是通过这个模型来实现的:
class CeleryTaskmeta(models.Model): # found using python manage.py inspectdb
task_id = models.CharField(max_length=255, unique=True)
status = models.CharField(max_length=150)
result = models.TextField(blank=True)
date_done = models.DateTimeField()
traceback = models.TextField(blank=True)
hidden = models.IntegerField()
meta = models.TextField(blank=True)
class Meta:
db_table = u'celery_taskmeta'
是否有效/最好存储celerytaskmeta_id
。然后当用户请求第3页时,我会用以下内容启动视图:
def SomeView(request):
result = CeleryTaskmeta(id = celerytaskmeta_id)
result.get()
rest of SomeView ...
主题上,是否很难使用芹菜开始一项冗长的任务,做一些其他的事情,然后在完成漫长的任务后继续使用?