This document is for Kombu's development version, which can be significantly different from previous releases. Get the stable docs here: 5.0.
SQLAlchemy Transport Model - kombu.transport.sqlalchemy
¶
SQLAlchemy Transport module for kombu.
Kombu transport using SQL Database as the message store.
Features¶
Type: Virtual
Supports Direct: yes
Supports Topic: yes
Supports Fanout: no
Supports Priority: no
Supports TTL: no
Connection String¶
sqla+SQL_ALCHEMY_CONNECTION_STRING
sqlalchemy+SQL_ALCHEMY_CONNECTION_STRING
For details about SQL_ALCHEMY_CONNECTION_STRING
see SQLAlchemy Engine Configuration documentation.
Examples:
# PostgreSQL with default driver
sqla+postgresql://scott:tiger@localhost/mydatabase
# PostgreSQL with psycopg2 driver
sqla+postgresql+psycopg2://scott:tiger@localhost/mydatabase
# PostgreSQL with pg8000 driver
sqla+postgresql+pg8000://scott:tiger@localhost/mydatabase
# MySQL with default driver
sqla+mysql://scott:tiger@localhost/foo
# MySQL with mysqlclient driver (a maintained fork of MySQL-Python)
sqla+mysql+mysqldb://scott:tiger@localhost/foo
# MySQL with PyMySQL driver
sqla+mysql+pymysql://scott:tiger@localhost/foo
Transport Options¶
queue_tablename
: Name of table storing queues.message_tablename
: Name of table storing messages.
Moreover parameters of sqlalchemy.create_engine()
function can be passed as transport options.
Transport¶
-
class
kombu.transport.sqlalchemy.
Transport
(client, **kwargs)[source]¶ The transport class.
-
class
Channel
(connection, **kwargs)¶ The channel class.
-
property
message_cls
¶
-
property
queue_cls
¶
-
property
session
¶
-
property
-
can_parse_url
= True¶ Set to True if
Connection
should pass the URL unmodified.
-
connection_errors
= (<class 'sqlalchemy.exc.OperationalError'>,)¶ Tuple of errors that can happen due to connection failure.
-
default_port
= 0¶ port number used when no port is specified.
-
driver_name
= 'sqlalchemy'¶ Name of driver library (e.g. ‘py-amqp’, ‘redis’).
-
driver_type
= 'sql'¶ Type of driver, can be used to separate transports using the AMQP protocol (driver_type: ‘amqp’), Redis (driver_type: ‘redis’), etc…
-
class
SQLAlchemy Transport Model - kombu.transport.sqlalchemy.models
¶
Kombu transport using SQLAlchemy as the message store.
Models¶
-
class
kombu.transport.sqlalchemy.models.
Queue
(name)[source]¶ The queue class.
-
id
= Column(None, Integer(), table=None, primary_key=True, nullable=False, default=Sequence('queue_id_sequence'))¶
-
name
= Column(None, String(length=200), table=None)¶
-
-
class
kombu.transport.sqlalchemy.models.
Message
(payload, queue)[source]¶ The message class.
-
id
= Column(None, Integer(), table=None, primary_key=True, nullable=False, default=Sequence('message_id_sequence'))¶
-
visible
= Column(None, Boolean(), table=None, default=ColumnDefault(True))¶
-
sent_at
= Column('timestamp', DateTime(), table=None, onupdate=ColumnDefault(<function datetime.now>))¶
-
payload
= Column(None, Text(), table=None, nullable=False)¶
-
version
= Column(None, SmallInteger(), table=None, nullable=False, default=ColumnDefault(1))¶
-