PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Penyatuan Koneksi Database Pekerja Seledri

Saya suka ide tigeronk2 tentang satu koneksi per pekerja. Seperti yang dia katakan, Celery memelihara kumpulan pekerjanya sendiri sehingga sebenarnya tidak diperlukan kumpulan koneksi database yang terpisah. Dokumen Celery Signal menjelaskan cara melakukan inisialisasi khusus saat pekerja dibuat, jadi saya menambahkan kode berikut ke task.py saya dan tampaknya berfungsi persis seperti yang Anda harapkan. Saya bahkan bisa menutup koneksi saat pekerja dimatikan:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pertahankan zona waktu dalam jenis stempel waktu PostgreSQL

  2. Bagaimana cara menggunakan % operator dari ekstensi pg_trgm?

  3. Kontrol Versi PostgreSQL dengan Atlassian Bitbucket

  4. persentil dari data histogram

  5. Bagaimana mengubah pengkodean koleksi database template