【问题标题】:Is celery a good choice for long running tasks?芹菜是长时间运行任务的好选择吗?
【发布时间】:2020-09-29 15:46:57
【问题描述】:

我们正在使用 django、rabbitmq、celery 和 ffmpeg 的组合来读取相机流并将它们分解成图像以存储到文件系统中。此设置 24x7 全天候工作。现在,我们为每个摄像头流创建一个单独的任务,理论上每个任务都将无限期运行。

如果一个流出现故障,我们等待 n 帧,创建一个异常并在异常处理程序中,使用 time.sleep 创建 1 分钟的延迟后,我们重新运行 ffmpeg 进程。

我的问题是, 这是一个正确的方法吗? 我们应该使用 celery 来读取流吗? 芹菜是完成这项任务的正确工具吗? 我们可以使用 time.sleep 在 celery 任务中创建延迟吗?会不会影响其他任务?

【问题讨论】:

    标签: python-3.x ffmpeg rabbitmq celery django-celery


    【解决方案1】:

    我们有相对较大的 Celery 集群,我们的许多任务运行数小时,有些甚至运行超过 24 小时,所以我会说是的,Celery 是长时间运行任务的不错选择。我对音频/视频处理知之甚少,所以我认为在 Celery 任务中执行它应该没有任何问题。在最初的想法中,我唯一可能会改变的是:我不会睡觉(是的,你可以在 Celery 任务中调用 sleep )并继续处理,而是运行一个新任务。其他任务根本不应该受到影响。

    【讨论】:

    • 能否请您澄清一下“但我明白为什么 Celery 任务无法完成您需要的工作”?
    • 我措辞不好。我重写了那部分句子...
    猜你喜欢
    • 1970-01-01
    • 2015-11-16
    • 2011-10-13
    • 2019-02-26
    • 2015-05-11
    • 2017-05-24
    • 1970-01-01
    • 2015-02-03
    • 1970-01-01
    相关资源
    最近更新 更多