private static function dblock($cmd, $name, $ttl = 0) { $ret = ''; $db = \Rsf\Db::dbm(self::dsn); switch ($cmd) { case 'set': $ret = $db->replace('common_process', ['processid' => $name, 'expiry' => time() + $ttl]); break; case 'get': $ret = $db->findOne('common_process', '*', ['processid' => $name]); if (empty($ret) || $ret['expiry'] < time()) { $ret = false; } else { $ret = true; } break; case 'rm': $ret = $db->remove('common_process', "processid='{$name}' OR expiry<" . time()); break; } return $ret; }