Commit a new state to be associated with the lock - workers use this state information to coordinate the work progress across invokations.
Commit a new state to be associated with the lock - workers use this state information to coordinate the work progress across invokations.
The date of the last run is not updated by this call because a commit is just intended to reduce re-processing in case of failure.
Obtain the meta data of a given lock.
Obtain the meta data of a given lock.
None if the lock is not yet present with meta data, Some(lockInfo) otherwise.
Initialize a lock entry with default / provided lock meta data.
Initialize a lock entry with default / provided lock meta data. This is used by the first singleton manager that discovers that a given lock is not yet present.
Uses Cassandra CAS functionality to ensure only one manager is initializing the lock.
Store a new state to be associated with the lock - workers use this state information to coordinate the work progress across invokations.
Store a new state to be associated with the lock - workers use this state information to coordinate the work progress across invokations.
Touch the lock with the provided TTL.
Touch the lock with the provided TTL. This is used by the SingletonManager to keep a lock locked as long as the worker is working.
Try to acquire a specific lock.
Try to acquire a specific lock. This uses Cassandra CAS feature to ensure that only one singleton manager can grab the lock.
Uses cross-data centre serial consistency for now.
(See https://github.com/soyl/soyl-akka-elect/issues/1)
Handle class to provide context used by all singletons (mostly the Cassandra database connection for now)