public function test_expire_ShouldNotWorkIfValueIsDifferent()
 {
     $success = $this->redis->setIfNotExists($this->key, 'test', 60);
     $this->assertTrue($success);
     $success = $this->redis->expireIfKeyHasValue($this->key, 'test2', $seconds = 1);
     $this->assertFalse($success);
 }
예제 #2
0
 public function expireLock($ttlInSeconds)
 {
     if ($ttlInSeconds > 0 && $this->lockValue) {
         $success = $this->backend->expireIfKeyHasValue($this->lockKey, $this->lockValue, $ttlInSeconds);
         if (!$success) {
             $value = $this->backend->get($this->lockKey);
             $message = sprintf('Failed to expire key %s (%s / %s).', $this->lockKey, $this->lockValue, (string) $value);
             if ($value === false) {
                 Common::printDebug($message . ' It seems like the key already expired as it no longer exists.');
             } elseif (!empty($value) && $value == $this->lockValue) {
                 Common::printDebug($message . ' We still have the lock but for some reason it did not expire.');
             } elseif (!empty($value)) {
                 Common::printDebug($message . ' It seems to be locked by another queue.');
             } else {
                 Common::printDebug($message . ' Failed to expire key.');
             }
             return false;
         }
         return true;
     }
     return false;
 }