1

如何在 celery 延迟任务中使用 sqlalchemy 模型?

看起来 celery 有这个选项https://github.com/celery/celery/blob/master/celery/backends/database/session.py,但我找不到如何使用它的示例。

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

这个线程没有帮助我。

4

1 回答 1

2

有什么理由不只是将会话创建为全局变量并在 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)
于 2013-02-25T18:52:19.753 回答