======================== Third party integrations ======================== Celery ------ Here's how, in substance, CQLengine can be plugged to `Celery `_: .. code-block:: python from celery import Celery from celery.signals import worker_process_init, beat_init from cassandra.cqlengine import connection from cassandra.cqlengine.connection import ( cluster as cql_cluster, session as cql_session) def cassandra_init(**kwargs): """ Initialize a clean Cassandra connection. """ if cql_cluster is not None: cql_cluster.shutdown() if cql_session is not None: cql_session.shutdown() connection.setup() # Initialize worker context for both standard and periodic tasks. worker_process_init.connect(cassandra_init) beat_init.connect(cassandra_init) app = Celery() uWSGI ----- This is the code required for proper connection handling of CQLengine for a `uWSGI `_-run application: .. code-block:: python from cassandra.cqlengine import connection from cassandra.cqlengine.connection import ( cluster as cql_cluster, session as cql_session) try: from uwsgidecorators import postfork except ImportError: # We're not in a uWSGI context, no need to hook Cassandra session # initialization to the postfork event. pass else: @postfork def cassandra_init(**kwargs): """ Initialize a new Cassandra session in the context. Ensures that a new session is returned for every new request. """ if cql_cluster is not None: cql_cluster.shutdown() if cql_session is not None: cql_session.shutdown() connection.setup()