我们可以使用django canvas为芹菜任务运行2个组并行任务吗
就像我在芹菜里加的一样我们可以使用django canvas为芹菜任务运行2个组并行任务吗,django,parallel-processing,django-celery,Django,Parallel Processing,Django Celery,就像我在芹菜里加的一样 @app.task(bind=True) def execute_analysis(id_=1): task1 = group(news_event_task.si(i) for i in range(10)) task2 = group(parallel_task.si(i) for i in range(10)) return chain(task1, task2)() 问题:您在同一进程中顺序调用了太多函数(任务),因此,如果任何任务(废弃新闻数
@app.task(bind=True)
def execute_analysis(id_=1):
task1 = group(news_event_task.si(i) for i in range(10))
task2 = group(parallel_task.si(i) for i in range(10))
return chain(task1, task2)()
问题:您在同一进程中顺序调用了太多函数(任务),因此,如果任何任务(废弃新闻数据)被阻止,所有其他任务将继续等待,并可能进入阻止状态 解决方案:更好的设计是延迟运行news\u event\u任务,如果要调用并行任务,则可以在同一进程中同时运行每个news\u event\u任务。所以现在所有任务都将并行运行(使用芹菜来实现这一点)
另一种方法是将这些任务发送到队列中(而不是将其顺序保存在内存中),然后逐个处理每个新闻事件任务。发生了什么!它正在执行,但有时会阻塞,并且在队列中花费太多时间来开始一个接一个地处理和执行任务。您可以详细说明您想要实现的目标吗。它在优化吗?(取决于news_-even_-task.si()/parallel_-task.si()正在执行的操作)。新闻事件任务正在运行以获取来自废弃url的新闻数据,并且在每个固定时间间隔出现数据时并行任务正在执行。感谢您的帮助。我将努力实现这一点way@prachikumrawat它有帮助吗?它仍然属于未回答的类别。