This document is for Kombu's development version, which can be significantly different from previous releases. Get the stable docs here: 5.0.

SQLAlChemy传输模型- kombu.transport.sqlalchemy

用于Kombu的SQLAlChemy传输模块。

使用SQL数据库作为消息库的Kombu传输。

功能

  • 类型:虚拟

  • 支持Direct:是

  • 支持主题:是

  • 支持扇出:否

  • 支持优先级:否

  • 支持TTL:否

连接字符串

sqla+SQL_ALCHEMY_CONNECTION_STRING
sqlalchemy+SQL_ALCHEMY_CONNECTION_STRING

有关以下内容的详细信息 SQL_ALCHEMY_CONNECTION_STRING 请参阅SQLAlChemy引擎配置文档。

示例

# 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

交通选择

  • queue_tablename :存储队列的表的名称。

  • message_tablename :存储消息的表名。

此外,参数还包括 sqlalchemy.create_engine() 函数可以作为传输选项传递。

运输

class kombu.transport.sqlalchemy.Transport(client, **kwargs)[源代码]

运输班。

class Channel(connection, **kwargs)

频道类。

property message_cls
property queue_cls
property session
can_parse_url = True

在以下情况下设置为True Connection 应原封不动地传递URL。

connection_errors = (<class 'sqlalchemy.exc.OperationalError'>,)

由于连接故障而可能发生的错误的元组。

default_port = 0

未指定端口时使用的端口号。

driver_name = 'sqlalchemy'

驱动程序库的名称(例如‘py-amqp’、‘redis’)。

driver_type = 'sql'

驱动程序的类型,可用于使用AMQP协议(DRIVER_TYPE:‘AMQP’)、Redis(DRIVER_TYPE:‘REDIS’)等来分隔传输...

driver_version()[源代码]

渠道

class kombu.transport.sqlalchemy.Channel(connection, **kwargs)[源代码]

频道类。

property message_cls
property queue_cls
property session

SQLAlChemy传输模型- kombu.transport.sqlalchemy.models

使用SQLAlChemy作为消息库的Kombu传输。

模型

class kombu.transport.sqlalchemy.models.Queue(name)[源代码]

队列类。

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)[源代码]

消息类。

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))