Was this page helpful?
ScyllaDB Python Driver is available under the Apache v2 License. ScyllaDB Python Driver is a fork of DataStax Python Driver. See Copyright here.
Caution
You're viewing documentation for a deprecated version of Scylla Python Driver. Switch to the latest stable version.
Here’s how, in substance, CQLengine can be plugged to Celery:
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()
This is the code required for proper connection handling of CQLengine for a uWSGI-run application:
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()
Was this page helpful?
ScyllaDB Python Driver is available under the Apache v2 License. ScyllaDB Python Driver is a fork of DataStax Python Driver. See Copyright here.
On this page
cassandra - Exceptions and Enumscassandra.cluster - Clusters and Sessionscassandra.policies - Load balancing and Failure Handling Policiescassandra.auth - Authenticationcassandra.graph - Graph Statements, Options, and Row Factoriescassandra.metadata - Schema and Ring Topologycassandra.metrics - Performance Metricscassandra.query - Prepared Statements, Batch Statements, Tracing, and Row Factoriescassandra.pool - Hosts and Connection Poolscassandra.protocol - Protocol Featurescassandra.encoder - Encoders for non-prepared Statementscassandra.decoder - Data Return Formatscassandra.concurrent - Utilities for Concurrent Statement Executioncassandra.connection - Low Level Connection Infocassandra.util - Utilitiescassandra.timestamps - Timestamp Generationcassandra.io.asyncioreactor - asyncio Event Loopcassandra.io.asyncorereactor - asyncore Event Loopcassandra.io.eventletreactor - eventlet-compatible Connectioncassandra.io.libevreactor - libev Event Loopcassandra.io.geventreactor - gevent-compatible Event Loopcassandra.io.twistedreactor - Twisted Event Loopcassandra.cqlengine.models - Table models for object mappingcassandra.cqlengine.columns - Column types for object mapping modelscassandra.cqlengine.query - Query and filter model objectscassandra.cqlengine.connection - Connection management for cqlenginecassandra.cqlengine.management - Schema management for cqlenginecassandra.cqlengine.usertype - Model classes for User Defined Typescassandra.datastax.graph - Graph Statements, Options, and Row Factoriescassandra.datastax.graph.fluentcassandra.datastax.graph.fluent.querycassandra.datastax.graph.fluent.predicates