我有一个如下所示的 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()
如何重写此代码,以便它以原子方式创建具有指定 ID 的任务?