mirror of
https://github.com/zhamao-robot/zhamao-framework.git
synced 2026-07-24 00:55:35 +08:00
add unset for WorkerCache.php
This commit is contained in:
@@ -501,6 +501,11 @@ class ServerEventHandler
|
|||||||
$action = ["action" => "returnWorkerCache", "cid" => $data["cid"], "value" => $r];
|
$action = ["action" => "returnWorkerCache", "cid" => $data["cid"], "value" => $r];
|
||||||
$server->sendMessage(json_encode($action, 256), $src_worker_id);
|
$server->sendMessage(json_encode($action, 256), $src_worker_id);
|
||||||
break;
|
break;
|
||||||
|
case "unsetWorkerCache":
|
||||||
|
$r = WorkerCache::unset($data["key"]);
|
||||||
|
$action = ["action" => "returnWorkerCache", "cid" => $data["cid"], "value" => $r];
|
||||||
|
$server->sendMessage(json_encode($action, 256), $src_worker_id);
|
||||||
|
break;
|
||||||
case "asyncAddWorkerCache":
|
case "asyncAddWorkerCache":
|
||||||
WorkerCache::add($data["key"], $data["value"], true);
|
WorkerCache::add($data["key"], $data["value"], true);
|
||||||
break;
|
break;
|
||||||
@@ -510,6 +515,9 @@ class ServerEventHandler
|
|||||||
case "asyncSetWorkerCache":
|
case "asyncSetWorkerCache":
|
||||||
WorkerCache::set($data["key"], $data["value"], true);
|
WorkerCache::set($data["key"], $data["value"], true);
|
||||||
break;
|
break;
|
||||||
|
case "asyncUnsetWorkerCache":
|
||||||
|
WorkerCache::unset($data["key"], true);
|
||||||
|
break;
|
||||||
case "addWorkerCache":
|
case "addWorkerCache":
|
||||||
$r = WorkerCache::add($data["key"], $data["value"]);
|
$r = WorkerCache::add($data["key"], $data["value"]);
|
||||||
$action = ["action" => "returnWorkerCache", "cid" => $data["cid"], "value" => $r];
|
$action = ["action" => "returnWorkerCache", "cid" => $data["cid"], "value" => $r];
|
||||||
|
|||||||
@@ -45,6 +45,23 @@ class WorkerCache
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function unset($key, $async = false) {
|
||||||
|
$config = self::$config ?? ZMConfig::get("global", "worker_cache");
|
||||||
|
if ($config["worker"] === server()->worker_id) {
|
||||||
|
unset(self::$store[$key]);
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
$action = ["action" => $async ? "asyncUnsetWorkerCache" : "unsetWorkerCache", "key" => $key, "cid" => zm_cid()];
|
||||||
|
$ss = server()->sendMessage(json_encode($action, JSON_UNESCAPED_UNICODE), $config["worker"]);
|
||||||
|
if(!$ss) return false;
|
||||||
|
if ($async) return true;
|
||||||
|
zm_yield();
|
||||||
|
$p = self::$transfer[zm_cid()] ?? null;
|
||||||
|
unset(self::$transfer[zm_cid()]);
|
||||||
|
return $p;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static function add($key, int $value, $async = false) {
|
public static function add($key, int $value, $async = false) {
|
||||||
$config = self::$config ?? ZMConfig::get("global", "worker_cache");
|
$config = self::$config ?? ZMConfig::get("global", "worker_cache");
|
||||||
if ($config["worker"] === server()->worker_id) {
|
if ($config["worker"] === server()->worker_id) {
|
||||||
|
|||||||
Reference in New Issue
Block a user