Unique tasks
Tasks can be deduplicated by an optional string dedupe_key. If a key is set Moab will ensure that at most one task
in ENQUEUED or INFLIGHT states with such a key can be present in the queue at any given time. Unique (with non-empty
dedupe_key) and regular (with empty dedupe_key) tasks can be placed into the same queue.
On Fig. A below, task C will be successfully enqueued because such a key does not exist yet. On Fig. B, task
C will be skipped, because such a key exists. Moab does not return errors for duplication, so it will be skipped
silently.
However, it is possible to overwrite one or more properties when a duplicate is being enqueued. Moab can overwrite
payload, scheduled_at, and expires_at. Figure below shows how a payload overwrite looks like.
Next figure shows how scheduled_at can be overwritten. This works for both situations when a task is enqueued at now
or into the future. This is handy when something can trigger a delayed job several times, but instead of enqueuing
the same job several times it can be rescheduled instead.
TODO dead?