我的任务是使用 opencv 编写一个脚本,该脚本稍后将作为 Celery 任务运行。这会产生什么后果?我需要注意什么?最后包含两行代码是否足够,或者我必须重写整个脚本?
我读到,Celery 是一个"基于分布式消息传递的异步任务队列/作业队列系统",但我不会假装完全知道这一切意味着什么。
一旦我得到更多详细信息,我就会尝试更新问题。
- Celery 意味着使用代理(一些用于排队任务的数据中心)的守护进程。celeryd 守护进程和代理(RabbitMQ、redis、MongoDB 或其他)应该始终在后台运行。
- 您的任务将被排队,这意味着它们不会同时发生。您可以选择最多可以同时运行多少个。其余的人将等待其他人完成再开始。这也意味着通常需要一些并发性,并且您必须创建与执行相同操作的其他人配合良好的任务。
- Celery 不是用来运行脚本,而是用来运行任务,写成 python 函数。你当然可以从 Python 执行外部脚本,但你的入口点始终是 Python 函数。
- Celery 使用 Kombu,它使用消息代理来调度任务。这意味着传递给任务的数据应该是可序列化的。