python - mongodb 高并发写入 覆盖原有数据
PHP中文网
PHP中文网 2017-04-17 17:41:24
0
2
397

我有一个product表数据, 它会产生10个coupon, 我在product表的字段里存了coupon_count的字段为10, 如果抢红包的话根据coupon_count的剩余数来生成红包(抢红包coupon_count 减一)。

当1秒内并发上百的话, 会因为多个进程并发写入问题产生超过总是得红包。有什么方案可以解决这个问题?

  1. web框架: flask

  2. 数据库: mongodb 3.2.6

  3. 使用orm框架: mongoengine

PHP中文网
PHP中文网

认证高级PHP讲师

membalas semua(2)
伊谢尔伦

Ya, mongodb tidak mempunyai urus niaga dan tidak mengunci jadual Proses daripada menanyakan nombor kepada penulisan bukan atom, jadi konkurensi yang tinggi pasti akan menyebabkan masalah.
Adalah disyorkan untuk mengubah suai antara muka data dan pertanyaan untuk menyesuaikan diri dengan beberapa operasi atom mongodb untuk pemprosesan, seperti menjana sampul merah dahulu, dan kemudian menggunakan findAndModify untuk bertanya dan mengubah suai status sampul merah secara serentak apabila mengambil sampul merah.

Ty80

Gunakan findAndModify()

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan