Download the PHP package srd2010/console-mutex without Composer
On this page you can find all versions of the php package srd2010/console-mutex. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download srd2010/console-mutex
More information about srd2010/console-mutex
Files in srd2010/console-mutex
Package console-mutex
Short Description Mutex for Laravel Console Commands. Fork for Laravel 10.x
License MIT
Informations about the package console-mutex
Laravel Console Mutex
This is a fork from the original Repository to support Laravel v10.x
Mutex for Laravel Console Commands.
| Laravel | Console Mutex |
|---|---|
| 10.x | 10.x |
| 9.x | 9.x |
| 8.x | 8.x |
| 7.x | 7.x |
| 6.x | 6.x |
| 5.8.* | 5.8.* |
| 5.7.* | 5.7.* |
| 5.6.* | 5.6.* |
| 5.5.* | 5.5.* |
| 5.4.* | 5.4.* |
| 5.3.* | 5.3.* |
| 5.2.* | 5.2.* |
| 5.1.* | 5.1.* |
Table of contents
- Usage
- Strategies
- Advanced
- Set custom timeout
- Handle multiple commands
- Set custom storage folder
- Troubleshooting
- Trait included, but nothing happens?
- Several traits conflict?
- Sponsors
- License
Usage
-
Install the package via Composer:
- Use
Illuminated\Console\WithoutOverlappingtrait:
Strategies
Mutex can prevent overlapping by using various strategies:
file(default)mysqlredismemcached
The default file strategy is acceptable for small applications, which are deployed on a single server.
If your application is more complex and deployed on several nodes, you should consider using another mutex strategy.
You can change strategy by using the $mutexStrategy field:
Or by using the setMutexStrategy() method:
Advanced
Set custom timeout
By default, if mutex sees that the command is already running, it will immediately quit. You can change that behavior by setting a timeout in which mutex can wait for another running command to finish its execution.
You can set the timeout by specifying the $mutexTimeout field:
Or by using the setMutexTimeout() method:
Here's how the $mutexTimeout field is treated:
0- no waiting (default);{int}- wait for the given number of milliseconds;null- wait for the running command to finish its execution;
Handle multiple commands
Sometimes it might be useful to have a shared mutex for multiple commands. You can easily achieve that by setting the same mutex name for all of those commands.
You should use the getMutexName() method for that:
Set custom storage folder
If you're using the file strategy, mutex files would be stored in the storage/app folder.
You can change that by overriding the getMutexFileStorage() method:
Troubleshooting
Trait included, but nothing happens?
WithoutOverlapping trait overrides the initialize() method:
If your command overrides the initialize() method too, you have to call the initializeMutex() method by yourself:
Several traits conflict?
If you're using another illuminated/console-% package, you'll get the "traits conflict" error.
For example, if you're building a loggable command, which doesn't allow overlapping:
You'll get the traits conflict, because both of those traits are overriding the initialize() method:
If two traits insert a method with the same name, a fatal error is produced, if the conflict is not explicitly resolved.
To fix that - override the initialize() method and resolve the conflict:
Original Sponsors
License
Laravel Console Mutex is open-sourced software licensed under the MIT license.
All versions of console-mutex with dependencies
arvenil/ninja-mutex Version dev-master#82cbb2c
illuminate/console Version ^10.0
illuminate/support Version ^10.0
ramsey/collection Version ^2.0
