fix: make transcode leases ownership-checked and cleanup-aware
Cleanup never matched a live session because the controller registered empty manifest and segment paths, renewal was a read-modify-write that could revert a takeover, and the takeover script compared an ISO date to a number, so it errored. - populate the session record's manifest and segment paths from the playlist path - renew the lease via a Lua compare-and-set on the owning pod - store the lease expiry as unix milliseconds so the scripts can compare it - retain the session record past its lease so an orphan can still be taken over - test the Redis store against a real Redis, including the renew-vs-takeover race - drop the live stream record nothing ever read back
This commit is contained in:
@@ -16,4 +16,11 @@ public sealed class TranscodeStoreOptions
|
||||
/// Gets or sets the duration in seconds for which a transcoding session lease is valid.
|
||||
/// </summary>
|
||||
public int LeaseDurationSeconds { get; set; } = 30;
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets how long in seconds a session record is retained after its lease was last renewed.
|
||||
/// The record must outlive the lease, otherwise an orphaned session is gone before another pod
|
||||
/// can take it over.
|
||||
/// </summary>
|
||||
public int SessionRetentionSeconds { get; set; } = 300;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user