跟踪使用 Group 创建的每个并行任务的执行时间?

问题描述

我目前正在使用 Django 和 Celery 构建后端系统。在我当前的设置中,我有一个每 15 分钟运行一次的周期性任务。这一周期性任务确实使用 Group 创建了多个子任务。我想要做的是跟踪整个任务的时间,包括要运行的所有子任务。我确实尝试过使用 get() 但是任务中不允许使用 get() 。那么还有哪些其他选项可以用来跟踪执行时间呢?系统没有其他功能,只有一堆定期和正常的任务,也没有 UI 代码或视图中的任何内容。我想等待所有子任务完成,然后显示总时间。

下面是我的任务代码

@shared_task()
def test_process(name="task1"):
    start_time = datetime.datetime.Now()
    get_list = GetList()
    rlist = get_list.run()
    rlist = dict(itertools.islice(rlist.items(),2))

    task_group= group([get_test_data.s(r) for r in rlist])
    result = task_group.apply_async()
   
    while not result.ready():
        print(result.completed_count())
    end_time = datetime.datetime.Now()
    print('Duration: {}'.format(end_time - start_time))

代码无法正确显示时间,因为该组创建了多个异步执行的子任务。跟踪时间的正确方法是什么???我使用的是最新版本的 Celery 5.1.1 和 Django。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...