Redis
 sql >> Database >  >> NoSQL >> Redis

L'uso del pool di elaborazione multipla dall'attività celery solleva un'eccezione

Questo è un problema noto con il sedano. Nasce da un problema introdotto nella dipendenza da biliardo. Una soluzione alternativa consiste nell'impostare manualmente _config attributo per il processo corrente. Grazie all'utente @martinth per la soluzione qui sotto.

from celery.signals import worker_process_init
from multiprocessing import current_process

@worker_process_init.connect
def fix_multiprocessing(**kwargs):
    try:
        current_process()._config
    except AttributeError:
        current_process()._config = {'semprefix': '/mp'}

Il worker_process_init hook eseguirà il codice all'inizializzazione del processo di lavoro. Verifichiamo semplicemente se _config esiste e impostarlo in caso contrario.