This workflow sets a small "lock" value in Redis so that only one copy of a long job can run at the same time. If another trigger fires while the job is still busy, the workflow sees the lock, stops early, and throws a clear error. This protects your data and keeps you from hitting rate limits.
Because the workflow also stores simple progress flags ("working", "loading", "finishing"), you can poll the current status and show live progress for very long jobs.
Great when the same workflow can be called many times in parallel (for example by webhooks, cron jobs, or nested Execute Workflow calls) and you need an "only run once at a time" guarantee without building a full queue system.
process_status_<key>
with a time‑to‑live (default 600 s)action = get
action
set to get
, set
, or unset
key
set to a unique name for the jobtimeout
in secondsaction = get
to display real‑time progress to usersIf a Telegram bot sends many identical callbacks in a burst, call this workflow first to place a lock. Only the first callback will proceed; the rest will exit cleanly until the lock clears. This keeps your bot from flooding downstream APIs.
Run heavy API syncs one after the other so parallel calls do not break vendor rate limits.
Block scheduled maintenance tasks from overlapping, making sure each window finishes before the next starts.