Вот предложение -
- Продавец перечисляет свою толстовку
- Человек # 1 добавляет толстовку в свою корзину
- Человек # 2 добавляет ту же толстовку кего корзина
- Персона # 1 оформляет заказ через PayPal
- Предотвратите их покупку в конечном итоге одного предмета, у которого есть 1 количество в вашем инвентаре.
В одну сторонупо моему мнению, справиться с этим сценарием (это своего рода обновленная версия вашей опции # 1 ) -
Когда Персона 1 добавит товар в свою корзину, вы это сделаете (если не тогдаВы должны) изменять статус заказа, т.е. в корзине , адрес , оплата , завершено и т. д.
Таккогда Персона 1 добавляет Элемент A в корзину (статус: in cart
), блокируйте его на 10 минут, чтобы другие ( Персона 2 ) добавляли их в свои корзина .Теперь вам нужно иметь rake script или Delayed Job с использованием crone job , работающий на вашем сервере , который проверяет все продукты, в данном случае Item A
в orders table
со статусом in cart
в течение 10 или более 10 минут и очистите / удалите эти продукты из этой строки .Что позволит другим ( Person 2 ) добавить этот предмет в корзину.И пусть другие ( Персона 2 ) и Персона 1 будут проинформированы о вашем процессе этой 10-минутной промывки с некоторым уведомлением.Например: Элемент 1 будет доступен в Time Counter running
до Person 2 и Item 1 перейдет в Time Counter running
до Person 1 .Здесь этот процесс будет создавать ощущение срочности в сознании пользователей, и вы будете контролировать свой инвентарь, не продавая предмет больше, чем его количество в наличии / количество .Вы можете проверить этот веб-сайт на наличие работающей реализации - http://www.thepeacockparade.com/
Надеюсь, это даст вам справедливую идею справиться с этой ситуацией.И да, если у вас есть какой-нибудь лучший способ сделать то же самое, пожалуйста, держите меня в курсе, потому что я тоже ищу обновление.
Спасибо
Обновлениепо производительности
После реализации этого процесса у вас могут возникнуть проблемы с производительностью на вашем веб-сайте.Один из способов, которым я нашел способ поддерживать ваше приложение в рабочем состоянии и одновременно обслуживать ваших клиентов и фоновый процесс, - это если вы используете amazon rds
или любые другие служба облачных баз данных у вас может быть два разных сервера приложений.Один для ваших клиентов, а другой для выполнения фоновых процессов, таких как очистка временных данных, файлов, выполнение граблей, загрузка данных и т. Д. И поскольку ваше приложение база данных находится полностью вне ваших серверов приложений, оно можетобновляться из обоих приложений.Таким образом, оно будет поддерживать ваши основные приложения еще лучше для своих пользователей, вместо того, чтобы голодать из-за памяти, используемой фоновыми процессами.
Обновление настроек базы данных
Rails - это здорово, когда дело доходит до база данных , таблицы и ассоциации .Если вы новичок в облачной службе баз данных amazon , ознакомьтесь с их планами здесь: http://aws.amazon.com/rds/pricing. Лучшее в том, что ваша база данных на amazon rds are -
- Вы можете выбрать ближайшую конечную точку / расположение сервера , чтобы обслуживать вашу базу данных для вашего приложения, что уменьшит задержку ваших запросов db и вашей нагрузки на сервер при их обработке.
- Вы можете использовать несколько приложений для доступа к нему.Очевидно, для разных целей, например, один для загрузки данных, второй для запуска аналитики и т. Д.
- Вы должны платить только за то, что используете.
- Если что-то (иногда по некоторым причинам я предпочитаю быть пессимистом) идет не так, как надо, и сервер вылетает по какой-то странной причине. Вы не облажались! Ваша БАЗА ДАННЫХ в безопасности. Просто установите новое приложение и вуаля! Вы вернулись в кратчайшие сроки.
- У вас есть свобода автоматизировать резервное копирование базы данных , не запутываясь в BASH SCRIPTS .
- Вы можете расширять его по мере роста вашего бизнеса.
Чтобы настроить базу данных amazon rds , перейдите на консоль amazon rds: https://console.aws.amazon.com/rds/home. Выберите предпочитаемый регион из Панель навигации панель слева сторона страницы. Нажмите кнопку " Launch DB Instance ", выберите предпочитаемую Database и следуйте остальной части потока, то есть выберите тип экземпляра и т. Д.
Теперь, если у вас запущен rds экземпляр , вы можете увидеть конечную точку примерно так: database-name.random-string.region-endpoint.rds.amazonaws.com
. В вашем приложении rails отредактируйте и обновите config / database.yml по следующему адресу:
production:
adapter: mysql2
host: database-name.random-string.region-endpoint.rds.amazonaws.com
encoding: utf8
reconnect: false
database: databse-name
username: master-username
password: password
Выглядел удивленным ?? Да это оно!! Все готово для использования вашего приложения с новым экземпляром amazon rds DB . Теперь rake db:create
для проверки соединения и rake db:migrate
для создания таблиц .
Здесь я хотел бы добавить еще одну вещь. Если вы хотите улучшить свою жизнь, используйте amazon s3 (простой сервис хранения) . Это чертовски дешево и надежно, посмотрите здесь: http://aws.amazon.com/s3/
Наслаждайтесь !!