python - (django-) celery 会自动 fork 吗?

标签 python concurrency celery django-celery

celery 是否会为每项任务 fork 自己? 假设我有这样的东西:

obj = object()

@celery.task
def print_id():
   print id(obj)

#another server
print_id.delay()
print_id.delay()
print_id.delay()

多次调用任务时(不重启celery),id是否始终相同?

最佳答案

这要看情况。请参阅concurency docs .

如果您使用多处理设置了至少两个工作线程,则id将不会保持不变。即使您使用一个节点,并在 X 任务执行(celery Worker 中的一个选项)后重新启动它,id 也不会保持不变。

基本上你不应该在代码中依赖它。通过 Celery 运行任务的真正目的是分发它们。

请问为什么会有这样的问题?您有需要的用例吗?

关于python - (django-) celery 会自动 fork 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17738717/

相关文章:

Python 类(class)是我弄错了还是我的老师弄错了 [easy]

c - 编写库时使用 OpenMP

python - 将 gevent.evnet 与 celery.task 结合使用

python - celery 错误电子邮件 : can not receive emails celery

python - from time import timestart_time = time() ,输出语法错误

python - 在 python 的 if 语句中分配变量的 c 风格

ruby - ruby 有真正的多线程吗?

android - 为什么我的缓存机制没有按预期工作?

python - celery - 链接组和子任务。 -> 乱序执行

python - 如何改进python后缀数组中的lambda表达式