DenyMultiplyRun
, (*1)
utility is work on production middlewhere, but this project for see how work github, modules, integrates with services and phpstorm., (*2)
Π΄Π»Ρ ΡΠ½ΠΈΠΊΠ½Π΅Π½Π½Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠΊΠ° ΡΠΊΡΠΈΠΏΡΠ° (ΠΏΠΎ ΠΊΡΠΎΠ½Ρ, Π· ΠΊΠΎΠ½ΡΠΎΠ»Ρ, ...), (*3)
$pid_file = "/var/run/some_job_or_daemon.pid";
DenyMultiplyRun::setPidFile($pid_file);
// @something_do
// not necessary
DenyMultiplyRun::deletePidFile($pid_file);
Deny multiply run php-code while previous process exist.
Use for cron job or daemon., (*4)
ΠΠΎΠ½ΡΠ΅ΠΏΡΡΡ ΡΠΎΠ·ΡΠΎΠ±ΠΊΠΈ ΡΠΊΠ° Π°Π²ΡΠΎΡΠΎΠΌ Π·Π°ΠΊΠ»Π°Π΄Π΅Π½Π°:
1. ΡΠΊΡΠΎ Π΅ΠΊΡΠ΅ΠΏΡΠΈΠ½ΠΈ Π½Π΅ Π²ΠΈΠΊΠΈΠ΄ΡΡΡΡΡΡ - 100% Π²ΡΠ΅ Π²ΡΠ΄ΠΏΡΠ°ΡΡΠ²Π°Π»ΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ.
Π ΡΠΎΠΌΡ ΡΠΈΡΠ»Ρ Ρ Π½Π°ΡΡΠ²Π½Ρ ΡΡΠ½ΠΊΡΡΡΡ php.
ΠΡΠ΄Ρ-ΡΠΊΡ ΠΏΠΎΠΌΠΈΠ»ΠΊΠΈ Π²ΠΈΠΊΠΈΠ½ΡΡΡ Exception Π· Π΄Π΅ΡΠ°Π»ΡΠ½ΠΈΠΌ ΠΏΠΎΠ²ΡΠ΄ΠΎΠΌΠ»Π΅Π½Π½ΡΠΌ
Π΄Π»Ρ ΠΏΠΎΠ΄Π°Π»ΡΡΠΎΡ ΠΌΠΎΠΆΠ»ΠΈΠ²ΠΎΡΡΡ ΠΊΠΎΡΠ΅ΠΊΡΠ½ΠΎΡ ΠΎΠ±ΡΠΎΠ±ΠΊΠΈ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ
Ρ ΠΏΠΎΠ΄Π°Π»ΡΡΠΎΠ³ΠΎ Π²ΠΈΠΏΡΠ°Π²Π»Π΅Π½Π½Ρ.
2. ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π° ΡΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΡΡΡΡ ΠΏΡΠΈ Π±ΡΠ΄Ρ-ΡΠΊΠΈΡ
Π·Π±ΠΎΡΡ
,
ΡΠΎ ΠΌΠΎΠΆΡΡΡ Π²ΠΈΠ½ΠΈΠΊΠ½ΡΡΠΈ ΠΏΡΠΈ ΡΠΎΠ±ΠΎΡΡ Π±ΡΠ±Π»ΡΠΎΡΠ΅ΠΊΠΈ.
ΠΠΎΠΆΠ΅Π½ Exception ΠΌΠ°Ρ ΠΌΠ°ΡΠΈ:
* ΡΠ½ΡΠΊΠ°Π»ΡΠ½ΠΈΠΉ ΠΊΠ»Π°Ρ
* ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π΄Π΅ΡΠ°Π»ΡΠ½Π΅ ΠΏΠΎΠ²ΡΠ΄ΠΎΠΌΠ»Π΅Π½Π½Ρ ΠΏΡΠΎ ΠΏΡΠΈΡΠΈΠ½Ρ Ρ ΡΠΎ ΡΠΎΠ±ΠΈΡΠΈ.
3. ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π° Π·ΡΡΡΠ½ΡΡΡΡ Ρ ΠΏΡΠΎΡΡΠΎΡΠ° Π²ΠΈΠΊΠΎΡΠΈΡΡΠ°Π½Π½Ρ., (*5)
-
ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π° Π·ΡΡΡΠ½ΡΡΡΡ Ρ ΠΏΡΠΎΡΡΠΎΡΠ° ΡΠ΅ΡΡΡΠ²Π°Π½Π½Ρ. ΠΠ΄ΠΆΠ΅ ΡΠΈΠΌ ΠΏΡΠΎΡΡΡΡΠ΅ - ΡΠΈΠΌ:, (*6)
4.1. ΠΌΠ΅Π½ΡΠ΅ Π·ΡΡΠΈΠ»Ρ Π΄Π»Ρ ΡΠ΅ΡΡΡΠ²., (*7)
4.2. ΠΌΠ΅Π½ΡΠ° ΠΉΠΌΠΎΠ²ΡΡΠ½ΡΡΡΡ ΠΏΠΎΠΌΠΈΠ»ΠΎΠΊ ΡΠΎ Π½Π΅ ΠΏΠΎΠΊΡΠΈΡΡ ΡΠ΅ΡΡΠ°ΠΌΠΈ., (*8)
4.3. ΡΠ²ΠΈΠ΄ΡΠΈΠΉ ΠΏΠΎΡΡΠ³ 100% Ρ ΡΠ°ΡΡΠΊΠΎΠ²ΠΎΠ³ΠΎ Π²Ρ
ΠΎΠ΄ΠΆΠ΅Π½Π½Ρ Π² ΠΏΡΠΎΠ΅ΠΊΡ., (*9)
-
ΠΏΠΎΠ²Π½Π° ΡΠ½ΡΠ΅Π³ΡΠ°ΡΡΡ Π· PHPSTORM 2017.1.4 (Π· Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΌΠΈ ΠΏΠ΅ΡΠ΅Π²ΡΡΠΊΠ°ΠΌΠΈ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠΈ), (*10)
=Π ΡΠ΅Π°Π»ΡΠ·Π°ΡΡΡ:=
* ΡΡΠ°ΡΠΈΡΠ½ΠΈΠΉΠ° Π½Π΅ Π΄ΠΈΠ½Π°ΠΌΡΡΠ½ΠΈΠΉ Π²ΠΈΠ·ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄ΡΠ² Π΄ΠΎΠΏΠΎΠΌΠ°Π³Π°Ρ
- ΠΎΠ±ΡΠΉΡΠΈΡΡ Π±Π΅Π· new
- ΡΠ½ΠΈΠΊΠ½ΡΡΠΈ ΠΌΠΎΡΠΎΠΊΠΈ Π· ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅Ρ ΠΎΠ±'ΡΠΊΡΠ° Π² ΡΠ½ΡΡ ΠΌΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ.
* ΠΊΡΠ»Π°Ρ Π· ΡΡΠ°ΡΠΈΡΠ½ΠΈΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ Π° Π½Π΅ ΠΏΡΠΎΡΡΠΎ ΡΡΠ½ΠΊΡΡΡ Π΄Π»Ρ:
- Π½Π΅ Π·Π°ΡΠΎΡΡΠ²Π°Π½Π½Ρ ΠΏΠΎΠ»Ρ USE Π΄Π΅ Π²ΠΈΠΊΠΎΡΠΈΡΡΠΎΠ²ΡΠ²Π°ΡΠΈΠΌΠ΅ΡΡΡΡ Π±ΡΠ±Π»ΡΠΎΡΠ΅ΠΊΠ°,
- ΠΏΡΠΈΡ
ΠΎΠ²Π°Π½Π½Ρ Π΄ΠΎΠΏΠΎΠΌΡΠΆΠ½ΠΈΡ
ΠΌΠ΅ΡΠΎΠ΄ΡΠ²/Π·ΠΌΡΠ½Π½ΠΈΡ
Π²ΡΠ΄ Π°Π²ΡΠΎΠ΄ΠΎΠΏΠΎΠ²Π½ΡΠ²Π°ΡΠ°., (*11)