请教下Octane内存数据持久性相关问题?

1. 运行环境

1). 当前使用的 Laravel 版本?

Laravel Framework 10.22.0

2). 当前使用的 php/php-fpm 版本?

PHP 版本:
PHP 8.1.13 (cli) (built: Dec 1 2022 16:29:48) (NTS)

php-fpm 版本:8.1.13

3). 当前系统

CentOS 7.9

4). 业务环境

开发环境,使用的宝塔面板搭建的

5). 相关软件版本

Nginx 1.22.1
MySQL 8.0.24
Redis 7.2.4
Swoole 5

2. 问题描述?

octane 文档不是提供了两种启动方式嘛,

    第一种:octane:start
    第二种:octane:reload. (这总适合于启动后,修改了文件上传后重启)

然后关闭方式就是:

    octane:stop

虽然这几个命令使用都是正常的,但是,这里面存在一个问题,那就是:

octane使用的是swoole, 将数据常驻内存,那么,这些数据,是什么时候才能写入到数据库中呢?他的机制是什么呢?

我的尝试

1、我先是根据文档,开发过程中一直都是用最开始octane:start,然后呢,就是一直octane:reload了,但是每次reload之后,都会丢失数据,所以渐渐的感觉不太对了。

2、后面我又尝试了octane:stop,然后再octane:start, 诶,这次好了,数据不会丢,重新start后,内存中的数据还在,但是还是并没有写入到数据库中。

3、后面我又根据文档,使用了octane:start --watch 模式,这个好像是可以实时写入数据库,也就是说,它除了可以自动更新加载我们上传的文件外,还跳过了内存,直接写入数据库,但是这个肯定不是我想要的呀,如果不用内存,那octane的意义就没了呀.....

3. 您期望得到的结果?

我主要是想知道,这个【机制】是什么?
不然虽然现在octane:stop是可以保留数据在内存中的,但是服务器总有重启的那一刻啊,
如果以后服务器要重启,我该如何操作呢?

有没有命令能强制写入octane保留的内存数据到数据库?
或者有没有文档给详细解释这个【数据持久性】的【机制】呢?

头疼啊,有知道的大神麻烦告诉下,谢谢啦^_^

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案

没有存入mysql吧。php系统设计有问题吧,没有考虑到cli模式

3个月前 评论
qingye666 (楼主) 3个月前
deatil (作者) 3个月前
qingye666 (楼主) 3个月前
deatil (作者) 3个月前
qingye666 (楼主) 3个月前
qingye666 (楼主) 3个月前
讨论数量: 10
JaguarJack

你说内存数据是指?PHP 运行时内存数据?

3个月前 评论
qingye666 (楼主) 3个月前
qingye666 (楼主) 3个月前

没有存入mysql吧。php系统设计有问题吧,没有考虑到cli模式

3个月前 评论
qingye666 (楼主) 3个月前
deatil (作者) 3个月前
qingye666 (楼主) 3个月前
deatil (作者) 3个月前
qingye666 (楼主) 3个月前
qingye666 (楼主) 3个月前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!