gpt4 book ai didi

php - swoole websocket服务器关闭时swoole table会自行销毁吗

转载 作者:行者123 更新时间:2023-12-04 19:39:28 26 4
gpt4 key购买 nike

我正在设置 Swoole我在 CentOS 7 主机上的聊天应用程序的 web 套接字服务器。并将使用 Swoole 表来存储用户列表。
但我不确定 Swoole table 的使用生命周期是多少。当 Swoole Server 意外关闭时,之前创建的表会怎样?我需要自己销毁它以释放内存吗?如果是,我怎样才能找到表格并将其删除?
swoole table的官方文档并没有真正提供太多细节,所以希望有经验的人可以给我一个简短的解释。

最佳答案

单独关闭服务器不会清理内存,你必须手动清理它。
但是如果整个程序崩溃了,你就不需要清除内存了。
Swoole 表没有生命周期,它们就像常规数组,你定义你的数据,你删除它。
我认为您应该使用静态 getter,以便它可以在全局范围内使用,请考虑以下代码作为示例。

<?php

use Swoole\Table;

class UserStorage
{
private static Table $table;


public static function getTable(): Table
{
if (!isset(self::$table)) {
self::$table = new Swoole\Table(1024);
self::$table->column('name', Swoole\Table::TYPE_STRING, 64);
self::$table->create();

return self::$table;
}

return self::$table;
}
}

// Add data to table
UserStorage::getTable()->set('a', ['name' => 'Jane']);
// Get data
UserStorage::getTable()->get('a');
// Destroy the table
UserStorage::getTable()->destroy();

关于php - swoole websocket服务器关闭时swoole table会自行销毁吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71624486/

26 4 0