Skip to content

Locking & Unlocking

Mikael Henriksson edited this page Jan 16, 2021 · 3 revisions

When is my lock created?

  • UntilExpired - when the client middleware runs

  • UntilExecuted - when the client middleware runs

  • UntilExecuting - when the client middleware runs

  • WhileExecuting - when the server middleware runs.

  • UntilAndWhileExecuting - A first lock (UntilExecuting) is created when the client middleware runs. A second lock (WhileExecuting) is created when the server runs.

  • WhileExecutingReject - when the server middleware runs. Duplicates will be pushed to the dead queue after any configured waiting time (lock_timeout) is reached.

When is my lock released?

  • UntilExpired - when the configured lock_ttl is hit. No other unlocking happens, unless you specify the configuration option lock_ttl: kind_of(Integer) the lock would never be released.

  • UntilExecuted - after your worker is done executing its code.

  • UntilExecuting - before your worker starts executing its code.

  • WhileExecuting - after your worker is done executing its code.

  • UntilAndWhileExecuting - The first lock (UntilExecuting) is released before your worker starts executing its code. The second lock is released after your worker is done executing its code.

  • WhileExecutingReject - after your worker is done executing its code.