【问题标题】:wordpress edit lockwordpress 编辑锁
【发布时间】:2013-02-06 04:08:39
【问题描述】:

我有一个自定义帖子类型(产品),其中包含一个元字段 持有的库存数量。

下单后我会更新数量

`$qty=get_post_meta($post->ID,'stock',true);

$数量--;

Update_post_meta($post->ID,'stock',$qty);`

恐怕有多个同时调用此更新 可能会导致数据不正确如果在另一个呼叫正在进行时进行呼叫...

有没有办法锁定那段代码并确保它不会被触发 同时还是我对我的担忧感到兴奋?

【问题讨论】:

    标签: php wordpress locking


    【解决方案1】:

    一般来说不应该有问题,我的问题是你为什么要得到数量,然后用它来减去它并再次更新它,而一切都可以一步完成。我假设这两种方法正在调用数据库。在 MYsql 中你可以做类似的事情

    UPDATE yourtable SET quantity = quantity-1 WHERE id = ....
    

    这样推论就发生在您的数据库中,并且您正在保存一个查询...

    【讨论】:

    • 嗯,我认为这可能会解决它,因为 mysql 将锁定该字段进行编辑... thx
    • 没错,但请记住,在第一种情况真正成为问题之前,您必须体验大量的并发性,如果是,请确保您使用事务来编写查询。 .
    • 你能评估多少并发量会导致这个过程失败? (我知道这是硬件和其他东西的问题,但是对于中间系统来说,一个粗略的数字就足够了:-))
    • 我不太确定,但想想看,为了实现这一点,你必须让 2 个人在完全相同的毫秒内下单……有 1000 个订单的机会是什么?在同一秒钟内,这甚至可能成为一个问题?即使通常电子商务应用程序有一个后端任务来与商店同步数量,特别是如果您每秒处理 1000 个订单,请不要介意如果您有这么大的数量,我什至不会使用 PHP,因为它缺乏良好的支持用于交易...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-13
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-17
    • 1970-01-01
    • 2017-04-11
    相关资源
    最近更新 更多