python - Celery sqlalchemy session

标签 python sqlalchemy celery

如何在 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?

This线程对我没有帮助。

最佳答案

有什么理由不将 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)

关于python - Celery sqlalchemy session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15071947/

相关文章:

python - 我如何在 SQLAlchemy 中查询由 JSON 列过滤的数据?

python - Flask关系模型如果不存在则多次获取或创建

python - Celery 在具有其他文件名的文件中发现任务

python - 如何按顺序保留要附加到 python 列表的项目 - 输入顺序

python - 将 pandas 数据框中的列从 String 转换为 Float

python - Pandas 数据帧 : convert Date format between two totally different formats

python - 使用 Azure 表客户端库从多个不同的 Azure 表异步检索数据

python - 将 sqlalchemy 类序列化为 json

python - Celery 4 不自动发现任务

python-3.x - celery 错误 : result. get(timeout=5) 超时,即使 result.status 是 SUCCESS