mirror of
https://github.com/coder/coder.git
synced 2025-07-15 22:20:27 +00:00
fix(cli): port-forward: update workspace last_used_at (#12659)
This PR updates the coder port-forward command to periodically inform coderd that the workspace is being used: - Adds workspaceusage.Tracker which periodically batch-updates workspace LastUsedAt - Adds coderd endpoint to signal workspace usage - Updates coder port-forward to periodically hit this endpoint - Modifies BatchUpdateWorkspacesLastUsedAt to avoid overwriting with stale data Co-authored-by: Danny Kopping <danny@coder.com>
This commit is contained in:
@ -1046,6 +1046,10 @@ func (q *FakeQuerier) BatchUpdateWorkspaceLastUsedAt(_ context.Context, arg data
|
||||
if _, found := m[q.workspaces[i].ID]; !found {
|
||||
continue
|
||||
}
|
||||
// WHERE last_used_at < @last_used_at
|
||||
if !q.workspaces[i].LastUsedAt.Before(arg.LastUsedAt) {
|
||||
continue
|
||||
}
|
||||
q.workspaces[i].LastUsedAt = arg.LastUsedAt
|
||||
n++
|
||||
}
|
||||
|
@ -11504,6 +11504,9 @@ SET
|
||||
last_used_at = $1
|
||||
WHERE
|
||||
id = ANY($2 :: uuid[])
|
||||
AND
|
||||
-- Do not overwrite with older data
|
||||
last_used_at < $1
|
||||
`
|
||||
|
||||
type BatchUpdateWorkspaceLastUsedAtParams struct {
|
||||
|
@ -433,7 +433,10 @@ UPDATE
|
||||
SET
|
||||
last_used_at = @last_used_at
|
||||
WHERE
|
||||
id = ANY(@ids :: uuid[]);
|
||||
id = ANY(@ids :: uuid[])
|
||||
AND
|
||||
-- Do not overwrite with older data
|
||||
last_used_at < @last_used_at;
|
||||
|
||||
-- name: GetDeploymentWorkspaceStats :one
|
||||
WITH workspaces_with_jobs AS (
|
||||
|
Reference in New Issue
Block a user