У меня есть объект модели SQLAlchemy, который выглядит следующим образом:
ResultModelBase = declarative_base()
class Task(ResultModelBase):
"""Task result/status."""
id = sa.Column(sa.Integer, sa.Sequence("task_id_sequence"),
primary_key=True,
autoincrement=True)
task_id = sa.Column(sa.String(255))
В двух отдельных клиентских процессах этот код запускается для создания нового экземпляра с уникальным идентификатором task_id; должен быть только один экземпляр task_id:
task = session.query(Task).filter(Task.task_id == task_id).first()
if not task:
task = Task(task_id)
session.add(task)
session.flush()
Как мне переписать этот код, чтобы он атомарно создавал задачу с указанным идентификатором?