Class JdbcTemplateLockProvider
java.lang.Object
net.javacrumbs.shedlock.support.StorageBasedLockProvider
net.javacrumbs.shedlock.provider.jdbctemplate.JdbcTemplateLockProvider
- All Implemented Interfaces:
net.javacrumbs.shedlock.core.ExtensibleLockProvider,net.javacrumbs.shedlock.core.LockProvider
public class JdbcTemplateLockProvider
extends net.javacrumbs.shedlock.support.StorageBasedLockProvider
Lock provided by JdbcTemplate. It uses a table that contains lock_name and
locked_until.
- Attempts to insert a new lock record. Since lock name is a primary key, it fails if the record already exists. As an optimization, we keep in-memory track of created lock records.
- If the insert succeeds (1 inserted row) we have the lock.
- If the insert failed due to duplicate key or we have skipped the insertion, we will try to update lock record using UPDATE tableName SET lock_until = :lockUntil WHERE name = :lockName AND lock_until <= :now
- If the update succeeded (1 updated row), we have the lock. If the update failed (0 updated rows) somebody else holds the lock
- When unlocking, lock_until is set to now.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classstatic final class -
Constructor Summary
ConstructorsConstructorDescriptionJdbcTemplateLockProvider(DataSource dataSource) JdbcTemplateLockProvider(DataSource dataSource, String tableName) JdbcTemplateLockProvider(JdbcTemplateLockProvider.Configuration configuration) JdbcTemplateLockProvider(org.springframework.jdbc.core.JdbcTemplate jdbcTemplate) JdbcTemplateLockProvider(org.springframework.jdbc.core.JdbcTemplate jdbcTemplate, String tableName) JdbcTemplateLockProvider(org.springframework.jdbc.core.JdbcTemplate jdbcTemplate, org.springframework.transaction.PlatformTransactionManager transactionManager) JdbcTemplateLockProvider(org.springframework.jdbc.core.JdbcTemplate jdbcTemplate, org.springframework.transaction.PlatformTransactionManager transactionManager, String tableName) -
Method Summary
Methods inherited from class net.javacrumbs.shedlock.support.StorageBasedLockProvider
clearCache, doLock, lock
-
Constructor Details
-
JdbcTemplateLockProvider
public JdbcTemplateLockProvider(org.springframework.jdbc.core.JdbcTemplate jdbcTemplate) -
JdbcTemplateLockProvider
public JdbcTemplateLockProvider(org.springframework.jdbc.core.JdbcTemplate jdbcTemplate, org.springframework.transaction.PlatformTransactionManager transactionManager) -
JdbcTemplateLockProvider
public JdbcTemplateLockProvider(org.springframework.jdbc.core.JdbcTemplate jdbcTemplate, String tableName) -
JdbcTemplateLockProvider
-
JdbcTemplateLockProvider
-
JdbcTemplateLockProvider
public JdbcTemplateLockProvider(org.springframework.jdbc.core.JdbcTemplate jdbcTemplate, org.springframework.transaction.PlatformTransactionManager transactionManager, String tableName) -
JdbcTemplateLockProvider
-