亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

django解決訂單并發(fā)問題【推薦】

 更新時(shí)間:2019年07月31日 10:25:49   作者:python_QYF  
這篇文章主要介紹了django解決訂單并發(fā)問題,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

并發(fā)處理

在多個(gè)用戶同時(shí)發(fā)起對同一個(gè)商品的下單請求時(shí),先查詢商品庫存,再修改商品庫存,會出現(xiàn)資源競爭問題,導(dǎo)致庫存的最終結(jié)果出現(xiàn)異常。

解決辦法:

悲觀鎖

當(dāng)查詢某條記錄時(shí),即讓數(shù)據(jù)庫為該記錄加鎖,鎖住記錄后別人無法操作,使用類似如下語法

select stock from tb_sku where id=1 for update;
SKU.objects.select_for_update().get(id=1)

悲觀鎖類似于我們在多線程資源競爭時(shí)添加的互斥鎖,容易出現(xiàn)死鎖現(xiàn)象,采用不多。

樂觀鎖

樂觀鎖并不是真實(shí)存在的鎖,而是在更新的時(shí)候判斷此時(shí)的庫存是否是之前查詢出的庫存,如果相同,表示沒人修改,可以更新庫存,否則表示別人搶過資源,不再執(zhí)行庫存更新。類似如下操作

update tb_sku set stock=2 where id=1 and stock=7;
SKU.objects.filter(id=1, stock=7).update(stock=2)

任務(wù)隊(duì)列

將下單的邏輯放到任務(wù)隊(duì)列中(如celery),將并行轉(zhuǎn)為串行,所有人排隊(duì)下單。比如開啟只有一個(gè)進(jìn)程的Celery,一個(gè)訂單一個(gè)訂單的處理。

總結(jié)

以上所述是小編給大家介紹的django解決訂單并發(fā)問題,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

相關(guān)文章

  • python實(shí)現(xiàn)經(jīng)緯度采樣的示例代碼

    python實(shí)現(xiàn)經(jīng)緯度采樣的示例代碼

    這篇文章主要介紹了python實(shí)現(xiàn)經(jīng)緯度采樣的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Python中re.findAll()、re.sub()、set()的使用

    Python中re.findAll()、re.sub()、set()的使用

    本文主要介紹了Python中re.findAll()、re.sub()、set()的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • Python探索之靜態(tài)方法和類方法的區(qū)別詳解

    Python探索之靜態(tài)方法和類方法的區(qū)別詳解

    這篇文章主要介紹了Python探索之靜態(tài)方法和類方法的區(qū)別詳解,小編覺得還是挺不錯(cuò)的,這里分享給大家,供需要的朋友參考。
    2017-10-10
  • Python 調(diào)用API發(fā)送郵件

    Python 調(diào)用API發(fā)送郵件

    這篇文章主要介紹了Python 調(diào)用API發(fā)送郵件的方法,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-03-03
  • Python導(dǎo)入引用其他文件的函數(shù)實(shí)戰(zhàn)案例(推薦!)

    Python導(dǎo)入引用其他文件的函數(shù)實(shí)戰(zhàn)案例(推薦!)

    這篇文章主要給大家介紹了關(guān)于Python導(dǎo)入引用其他文件的函數(shù)的相關(guān)資料,文中通過代碼以及圖文介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Python具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2024-01-01
  • PyCharm無法引用自身項(xiàng)目解決方式

    PyCharm無法引用自身項(xiàng)目解決方式

    今天小編就為大家分享一篇PyCharm無法引用自身項(xiàng)目解決方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • Python3.6 中的pyinstaller安裝和使用教程

    Python3.6 中的pyinstaller安裝和使用教程

    這篇文章主要介紹了Python3.6 中的pyinstaller安裝和使用的教程,本文給大家介紹的非常詳細(xì),對大家的工作或?qū)W習(xí)具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • python+selenium實(shí)現(xiàn)自動搶票功能實(shí)例代碼

    python+selenium實(shí)現(xiàn)自動搶票功能實(shí)例代碼

    Selenium是ThoughtWorks公司的一個(gè)強(qiáng)大的開源Web功能測試工具系列,采用Javascript來管理整個(gè)測試過程,包括讀入測試套件、執(zhí)行測試和記錄測試結(jié)果。這篇文章主要介紹了python+selenium實(shí)現(xiàn)自動搶票,需要的朋友可以參考下
    2018-11-11
  • Python釘釘報(bào)警及Zabbix集成釘釘報(bào)警的示例代碼

    Python釘釘報(bào)警及Zabbix集成釘釘報(bào)警的示例代碼

    這篇文章主要介紹了Python釘釘報(bào)警及Zabbix集成釘釘報(bào)警的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • python ndarray數(shù)組對象特點(diǎn)及實(shí)例分享

    python ndarray數(shù)組對象特點(diǎn)及實(shí)例分享

    在本篇文章里小編給大家分享的是一篇關(guān)于python ndarray數(shù)組對象特點(diǎn)及實(shí)例相關(guān)內(nèi)容,有需要的朋友們跟著學(xué)習(xí)下。
    2021-10-10

最新評論