feat(automations): ctx.tasks.scheduleStatusChange — отложенная смена статуса (воркер 5с, отмена при ручном переходе)
This commit is contained in:
18
migrations/0083_delayed_status_changes.sql
Normal file
18
migrations/0083_delayed_status_changes.sql
Normal file
@@ -0,0 +1,18 @@
|
||||
-- Отложенная смена статуса задачи (автоматизации, ctx.tasks.scheduleStatusChange).
|
||||
-- Воркер каждые 5 секунд подбирает просроченные строки и переводит задачу
|
||||
-- в target_status_id, только если она всё ещё в expected_status_id
|
||||
-- (ручной переход в другой статус отменяет отложенное действие).
|
||||
CREATE TABLE IF NOT EXISTS delayed_status_changes (
|
||||
id SERIAL PRIMARY KEY,
|
||||
organization_id INTEGER NOT NULL REFERENCES organizations(id) ON DELETE CASCADE,
|
||||
task_id INTEGER NOT NULL REFERENCES tasks(id) ON DELETE CASCADE,
|
||||
form_id INTEGER NOT NULL,
|
||||
expected_status_id INTEGER NOT NULL,
|
||||
target_status_id INTEGER NOT NULL,
|
||||
run_at TIMESTAMPTZ NOT NULL,
|
||||
executed_at TIMESTAMPTZ,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS delayed_status_changes_run_at_idx
|
||||
ON delayed_status_changes (run_at) WHERE executed_at IS NULL;
|
||||
Reference in New Issue
Block a user