PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Tổng hợp kết nối cơ sở dữ liệu công nhân cần tây

Tôi thích ý tưởng của tigeronk2 về một kết nối cho mỗi nhân viên. Như anh ấy nói, Celery duy trì nhóm nhân viên của riêng mình vì vậy thực sự không cần phải có một nhóm kết nối cơ sở dữ liệu riêng biệt. Tài liệu về Celery Signal giải thích cách thực hiện khởi tạo tùy chỉnh khi một worker được tạo, vì vậy tôi đã thêm mã sau vào task.py của mình và nó có vẻ hoạt động chính xác như bạn mong đợi. Tôi thậm chí có thể đóng các kết nối khi công nhân ngừng hoạt động:

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. Cách chuyển đổi trường hợp chuỗi trong PostgreSQL

  2. DatabaseError:giao dịch hiện tại bị hủy bỏ, các lệnh bị bỏ qua cho đến khi kết thúc khối giao dịch?

  3. PostgreSQL GROUP_CONCAT () Tương đương

  4. ĐẶT HÀNG THEO Bí danh không hoạt động

  5. PostgreSQL - Thêm khóa vào từng đối tượng của mảng JSONB