Race Condition
A common issue in the issue is about race conditions.
If you have not yet imported the config into the project, then you need to do this.
bash
php artisan vendor:publish --tag=laravel-wallet-config
Previously, there was a vacuum package, but now it is a part of the core. You just need to configure the lock service and the cache service in the package configuration wallet.php
.
php
/**
* A system for dealing with race conditions.
*/
'lock' => [
'driver' => 'array',
'seconds' => 1,
],
To enable the fight against race conditions, you need to select a provider that supports work with locks. I recommend redis
.
There is a setting for storing the state of the wallet, I recommend choosing redis
here too.
php
/**
* Storage of the state of the balance of wallets.
*/
'cache' => ['driver' => 'array'],
You need redis-server
and php-redis
.
Redis is recommended but not required. You can choose whatever the framework offers you.
It's simple!