sql >> Databáze >  >> RDS >> PostgreSQL

Sdružování připojení databáze Celery Worker

Líbí se mi myšlenka tigeronk2 o jednom připojení na pracovníka. Jak říká, Celery má svůj vlastní fond pracovníků, takže ve skutečnosti není potřeba samostatný fond pro připojení k databázi. Dokumenty Celery Signal vysvětlují, jak provést vlastní inicializaci, když je vytvořen pracovník, takže jsem přidal následující kód do svého task.py a zdá se, že funguje přesně tak, jak byste očekávali. Dokonce se mi podařilo uzavřít spojení, když jsou pracovníci vypnuti:

from celery.signals import worker_process_init, worker_process_shutdown

db_conn = None

@worker_process_init.connect
def init_worker(**kwargs):
    global db_conn
    print('Initializing database connection for worker.')
    db_conn = db.connect(DB_CONNECT_STRING)


@worker_process_shutdown.connect
def shutdown_worker(**kwargs):
    global db_conn
    if db_conn:
        print('Closing database connectionn for worker.')
        db_conn.close()


  1. Vybrat dotaz mysql mezi datem?

  2. Načítání kompletních chybových zpráv v isql

  3. Nejjednodušší způsob testování uložené procedury Oracle

  4. Oracle:Fulltextové vyhledávání s podmínkou