1
我正在通過SQLAlchemy使用關係數據庫。我想生成一個使用Celery處理數據庫的工作。有一個代碼:延遲SQLAlchemy會話處理芹菜任務
from sqlalchemy.orm.session import Session
from celery.task import task
from myapp.user import User
@task
def job(user):
# job...
session = Session.object_session(user)
with user.begin():
user.value = result_value
def ordinary_web_request_handler(uid):
assert isinstance(session, Session)
user = session.query(User).get(int(uid))
# deals with user...
job.delay(user)
return response
我需要在延遲job
使用SQLAlchemy的會議,但沒有session
呢。我如何設置一個會話傳入user
實體?
有辦法我想,但我不知道它的這些(或沒有這些)是最好的做法:
- 總是隻傳遞主鍵,並通過所傳遞的主鍵檢索新的實例。
- 設置傳遞實例的會話(但我不知道如何)。
- 請勿在延遲任務中使用ORM。