我有一个非常标准的设置:Django + Rabbitmq + Celery。
我正在尝试使用celery中的标准python多处理模块生成一个进程。
我注意到这个过程本身并没有产生。可能是没有产生这个过程的原因。这是代码:
import multiprocessing as mp
from celery.schedules import crontab
from celery.decorators import periodic_task
@periodic_task(run_every=crontab(minute='*/1'), name='test_process_celery')
def main():
data = config_read()
try:
myqueue = mp.Queue(-1)
mylog_process = mp.Process(target=test_logger_process, args=(myqueue,))
mylog_process.start()
. . .
. . .
except Exception as e:
raise
finally:
mylog_process.join()
我们可以在芹菜中使用多处理模块吗?
多处理是否存在芹菜限制?如果没有限制,为什么不产生过程?
先谢谢你。
答案 0 :(得分:0)
试试这个:
@periodic_task(run_every=crontab(minute='*/1'), name='test_process_celery')
def main():
from multiprocessing import current_process
current_process().daemon = False
your_stuff()
current_process().daemon = True