Celery SQLAlchemy会话

1 投票
1 回答
3780 浏览
提问于 2025-04-17 17:04

我该如何在celery的延迟任务中使用sqlalchemy模型呢?

看起来celery有这个选项,具体可以查看这个链接,但我找不到如何使用它的例子。

@celery.task
def mytask(data):
   # how to I get session here?

这个讨论对我没有帮助。

1 个回答

2

有没有什么理由不把会话(session)直接创建成一个全局变量,然后在celery任务中使用呢?

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker

# an Engine, which the Session will use for connection
# resources
some_engine = create_engine('postgresql://scott:tiger@localhost/')

# create a configured "Session" class
Session = sessionmaker(bind=some_engine)

# create a Session
session = Session()

@celery.task
def mytask(data):
  session.commit(data)

撰写回答