feat: add idempotent batch task submission and recovery examples
This commit is contained in:
@@ -49,6 +49,11 @@ func lockQueue(ctx context.Context, tx *sql.Tx, ns, id core.ID) (paused bool, ma
|
||||
if _, err = lockApplicationResources(ctx, tx, ns, false); err != nil {
|
||||
return
|
||||
}
|
||||
return lockQueueAfterApplication(ctx, tx, ns, id)
|
||||
}
|
||||
|
||||
// lockQueueAfterApplication 仅在同一事务已持有应用额度排他锁时调用。
|
||||
func lockQueueAfterApplication(ctx context.Context, tx *sql.Tx, ns, id core.ID) (paused bool, max uint32, err error) {
|
||||
err = tx.QueryRowContext(ctx, "SELECT paused,max_concurrency FROM pulse_queues WHERE namespace_id=? AND id=? FOR UPDATE", ns, id).Scan(&paused, &max)
|
||||
if errors.Is(err, sql.ErrNoRows) {
|
||||
err = fault.NotFound
|
||||
|
||||
Reference in New Issue
Block a user