【发布时间】:2015-04-22 14:04:02
【问题描述】:
我注意到在 Stack Overflow 和 Reddit 等网站上,他们能够将整个网站置于“只读”模式,例如维护期间。
我的问题是,需要什么样的架构才能实现这一目标?它是否发生在数据库级别,即一些“锁定”数据库写入的命令?这是一个有点宽泛的问题,所以为了缩小范围,我对以下方面的实现感兴趣:
- PHP
- MySQL
- Laravel
【问题讨论】:
-
不,数据库不会设置为只读模式,但为了安全起见,您也可以这样做。只需锁定用户界面。你会希望这个标志在任何地方都可用,所以可能是基控制器类中的 getter 方法?
-
可能很简单,例如在某个配置文件中设置
readonly=1,并让每个执行写入操作的代码块检查该标志。将数据库设置为只读会起作用,但很可能会杀死整个代码库,因为任何写入查询都会失败,并到处吐出“致命错误:无法写入您的更改”。 -
你真的只需要决定网站上最昂贵(通常也是最不重要)的操作是什么——然后添加机制来禁用它们。在 reddit 的案例中,这包括用户登录、赞成/反对投票、发帖和评论。讨厌成为一个坚持者,但如果你没有高级代表,我会看到这个问题很快就被关闭并被否决。我觉得这个问题更适合programmers.stackexchange.com?
-
@MarcB:尽管
:-),这将是对错误处理程序稳健性的一个很好的测试
标签: php mysql laravel maintenance-mode