请教下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保留的内存数据到数据库?
或者有没有文档给详细解释这个【数据持久性】的【机制】呢?

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

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
最佳答案

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

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

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

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

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

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

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