tryAcquireLock method

  1. @override
Future<bool> tryAcquireLock(
  1. IContext? context,
  2. String key,
  3. int ttl
)
override

Makes a single attempt to acquire a lock by its key. It returns immediately a positive or negative result.

  • context (optional) a context to trace execution through call chain.
  • key a unique lock key to acquire.
  • ttl a lock timeout (time to live) in milliseconds. Return Future that receives a lock result Throws error.

Implementation

@override
Future<bool> tryAcquireLock(IContext? context, String key, int ttl) async {
  var expireTime = _locks[key];
  var now = DateTime.now().toUtc().millisecondsSinceEpoch;

  if (expireTime == null || expireTime < now) {
    _locks[key] = now + ttl;
    return true;
  } else {
    return false;
  }
}