0
私はデータベースからシングルレコード(行)を取得する必要があるセルリーワーカーの束を持っています。Rethinkdb - 特定の条件のアトミック検索/更新行
"last_used"フィールドから60秒が経過した場合にのみ返され、返されるとすぐに "last_used"が現在の時間で更新されるはずです(遅延が0で無制限に再試行する他のワーカーは、同じもの)
これをすべてdbレベルで行うことはできますか?私はこの "last_used"フィールドを更新する他のソースを持っていません。
ここでは、単一行の外観を示します。
{"id": "..." "last_used": "2016-06-31 00:37:21.241833", "item": "string"}
私が試した:
conn = r.connect(host='localhost', port=28015)
do = r.db('database').table('tb').order_by(index=("last_used")).limit(1).update(
{'last_used': r.now()}
, return_changes=True).run(conn)
をそして、それは動作しません、それが変更される前に、複数の労働者が同じ行を返されます。