【问题标题】:why laravel update database asynchronously为什么 laravel 异步更新数据库
【发布时间】:2022-01-18 08:34:40
【问题描述】:

我的 laravel 源代码和 mysql 数据库在不同的服务器上。

存在有线问题,即数据库异步更新。

它不等待数据库更新并执行下一行。

作业队列被​​禁用,我不知道为什么会出现这个问题。

当我在数据库更新和下一行之间添加 sleep(3) 时。

它有效。它等待 3 秒并更新数据库,然后执行下一行。

请帮帮我??

是什么原因造成的?网络服务器 ?数据库配置??

$this->current_row()->update(['status'=>'accepted' ]);
sleep(3) ;
$current= $this->current_row() ;

它适用于我的本地和共享主机,但它不适用于数据库独立的服务器。

在最后一行更新,但在数据库更新的下一行

我需要更新的行,但它还没有更新

帮助

【问题讨论】:

  • Laravel 默认不会异步运行查询。也许检查您的数据库配置或任何代码怪癖

标签: php mysql laravel


【解决方案1】:

我发现了问题。 问题是关于数据库的。有两个数据库,主从。

读操作从从库完成,写操作在主库完成。

主从之间的同步需要一些时间,这就是问题

【讨论】:

  • 常见问题,但如果您的 reader 实例比您的 writer 晚 > 3 秒,您可能应该扩大它。
【解决方案2】:

你必须选择更新后的行

$current = $this->current_row()
    ->update(['status'=>'accepted' ])
    ->first();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-25
    • 2016-12-12
    • 2020-09-20
    • 1970-01-01
    • 2015-02-07
    • 2019-03-09
    • 2020-10-02
    相关资源
    最近更新 更多