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’)等来分隔传输...
渠道¶
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))¶