sql >> データベース >  >> RDS >> PostgreSQL

セロリワーカーデータベース接続プール

    私は、ワーカーごとに1つの接続というtigeronk2のアイデアが好きです。彼が言うように、Celeryは独自のワーカーのプールを維持しているため、個別のデータベース接続プールは実際には必要ありません。 Celery Signalのドキュメントでは、ワーカーの作成時にカスタム初期化を行う方法が説明されているため、tasks.pyに次のコードを追加しました。これは、期待どおりに機能するようです。ワーカーがシャットダウンしたときに接続を閉じることもできました:

    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. mysqlで連番のギャップを見つける方法は?

    2. MySQLデータベースにファイルを挿入する方法は?

    3. データベースの削除中にエラーが発生しました(rmdir'.test \'ができません、errno:17)

    4. Hibernate + PostgreSQL +ネットワークアドレスタイプ(inet、cdir)