私はこのようになります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で新しいインスタンスを作成するために実行されています。それはアトミックに指定されたIDを持つタスクを作成するようにどのように私はこのコードを書き換えることができ
task = session.query(Task).filter(Task.task_id == task_id).first()
if not task:
task = Task(task_id)
session.add(task)
session.flush()
:TASK_IDのインスタンスは1つだけでなければなりませんか?
を実行し、私はそれよりも実用的なものを好みます。 1つ、ロック何? –