рдЧрд┐рдпрд░рдореИрди - рдХрддрд╛рд░ рд╕рд░реНрд╡рд░: PHP рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ

рдмрд╣реБрдд рдкрд╣рд▓реЗ рдирд╣реАрдВ рдерд╛ рдХрд┐ рдЧрд┐рдпрд░рдореИрди рдХрддрд╛рд░ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдЕрджреНрднреБрдд рд▓реЗрдЦ рдерд╛ред рдореИрдВ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЬрд╛рд░реА рд░рдЦрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рдЗрд╕реЗ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рдХреБрдЫ рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдкреВрд░рдХ рдХрд░рдХреЗ, рдЕрд░реНрдерд╛рддреН:
- рд╕реНрдерд╛рдкрдирд╛ рдФрд░ рд╕рд░реНрд╡рд░ рдкреНрд░рдмрдВрдзрди
- рдХрддрд╛рд░ рдкреНрд░рдмрдВрдзрди - рдХреНрдпрд╛ рдФрд░ рдХреИрд╕реЗ рд╕рдВрднрд╡ рд╣реИ
- рдЧрд┐рдпрд░рдореИрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП PECL рдФрд░ PEAR php рдПрдХреНрд╕рдЯреЗрдВрд╢рди
- рд╕рд░реНрд╡рд░ рдХреА рдирд┐рдЧрд░рд╛рдиреА
- рдХреЛрдб рдЙрджрд╛рд╣рд░рдг
- рдмреИрдЪреЛрдВ рдореЗрдВ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░
- PHP рдореЗрдВ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХрд╛ рд╕рдВрдЧрдарди

рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ? рдореИрдВ рдХрдЯреМрддреА рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реВрдВ

рд╕рд╛рдордЧреНрд░реА рдХреА рдкреНрд░рд╕реНрддреБрддрд┐ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рдХрд╣рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рдХрд╣рд╛рдБ рд╕реЗ рдЖрдпрд╛ рд╣реИред рдпрд╣ рдХрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ (рд╕рднреА рдзреАрдореЗ рджреВрд░рд╕реНрде рд╕рд╛рдЗрдЯреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд), рдкреНрд░рд▓реЗрдЦрди рдФрд░ рдЪрд░реНрдЪрд╛ рдХреЗ рдЕрдВрд╢, рдмрд╕ рдХреБрдЫ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдФрд░ рдЕрдореВрд░реНрдд рд╡рд┐рдЪрд╛рд░реЛрдВ рдХрд╛ рд╕рдВрдХрд▓рди рд╣реИред рдмреЗрд╢рдХ, рдЧрд▓рддрд┐рдпрд╛рдБ, рд╡рд┐рд╡рд╛рджрд╛рд╕реНрдкрдж рдлреИрд╕рд▓реЗ рдФрд░ рд╡рд┐рд╡рд╛рджрд╛рд╕реНрдкрдж рд╡рд┐рдЪрд╛рд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ - рд▓реЗрдЦрдХ рдХрд┐рд╕реА рднреА рдЖрд▓реЛрдЪрдирд╛ рдФрд░ рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рдЖрднрд╛рд░реА рд╣реЛрдЧрд╛ред

рд╕рд╛рдордЧреНрд░реА


рдЧрд┐рдпрд░рдореИрди рдбреЗрдЯрд╛ рдЬреАрд╡рдирдЪрдХреНрд░
рдЧрд┐рдпрд░рдореИрди рд╕реНрдерд╛рдкрдирд╛ рдФрд░ рдирд┐рдпрдВрддреНрд░рдг
рд╕рд░реНрд╡рд░ рд╕реНрдерд┐рддрд┐ рдХреА рдирд┐рдЧрд░рд╛рдиреА

рдЧрд┐рдпрд░рдореИрди рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдкрд░ рдХрддрд╛рд░ рдХрд╛ рднрд╛рдЧреНрдп
рдкреВрд░реА рдХрддрд╛рд░ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░реЗрдВ рдФрд░ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдп рдХреА рдХрддрд╛рд░ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░реЗрдВ
рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░реЗрдВ

рдЧрд┐рдпрд░рдореИрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП PECL рдФрд░ REAR php рдПрдХреНрд╕рдЯреЗрдВрд╢рди
рдирд╛рд╢рдкрд╛рддреА Net_Gearman
рдкреЗрдХрд▓ рдЧрд┐рдпрд░рдореИрди
рдкреАрдХ рдЧрд┐рдпрд░рдореИрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ

рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рдЧреНрд░рд╛рд╣рдХ рдФрд░ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ (+ рд╡реАрдбрд┐рдпреЛ)
рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд╕рд╛рде рдЖрдВрд╢рд┐рдХ рдбреЗрдЯрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдбреЗрдЯрд╛ рд╡рд┐рдирд┐рдордп (+ рд╡реАрдбрд┐рдпреЛ)
рдкреГрд╖реНрдарднреВрдорд┐ рдХрд╛рд░реНрдп рдФрд░ рдкреНрд░рд╛рдердорд┐рдХрддрд╛
рдЧрд┐рдпрд░рдореИрди (+ рд╡реАрдбрд┐рдпреЛ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ PHP рдореЗрдВ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ


рдЧрд┐рдпрд░рдореИрди рдбреЗрдЯрд╛ рдЬреАрд╡рдирдЪрдХреНрд░


рд╡рд┐рд╡рд░рдг рдореЗрдВ рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдлрд┐рд░ рд╕реЗ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВрдЧреЗред
рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рд╣реИред PHP рдореЗрдВ f-and рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдХреИрд╕реЗ рд╣реЛрддрд╛ рд╣реИ:



рддреБрдЪреНрдЫред рдЕрдм рд╡рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди рдХрддрд╛рд░ рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░:



рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ: рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬрд┐рд╕реЗ рдлрд╝рдВрдХреНрд╢рди ("рдХреНрд▓рд╛рдЗрдВрдЯ") рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ / рдХрд╛рд░реНрдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд╡рд╣ рд╕рд░реНрд╡рд░ (рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ) рдХреЛ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдирд╛рдо рдФрд░ рдЙрд╕рдХреЗ рддрд░реНрдХ рднреЗрдЬрддрд╛ рд╣реИ - рд╕рд░реНрд╡рд░ рдкрд░ рдПрдХ рдХрд╛рд░реНрдп ("рдХрд╛рд░реНрдп") рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдпрджрд┐ рдПрдХ рд╣реИрдВрдбрд▓рд░ рдЗрд╕ рдирд╛рдо ("рдХрд╛рд░реНрдпрдХрд░реНрддрд╛") рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рдкрд░ рдкрдВрдЬреАрдХреГрдд рд╣реИ рдФрд░ рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдирд┐: рд╢реБрд▓реНрдХ рд╣реИ, рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдирд╛рдо рдЗрд╕реЗ рдХрд╛рд░реНрдп ("рдиреМрдХрд░реА") рдХреЗ рд░реВрдк рдореЗрдВ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрджрд┐ рдРрд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдкрдВрдЬреАрдХреГрдд рдирд╣реАрдВ рд╣реИ рдпрд╛ рд╡реНрдпрд╕реНрдд рд╣реИ, рддреЛ рдХрд╛рд░реНрдп рдХрддрд╛рд░ рдореЗрдВ рд╣реИ рдФрд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИред

рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдмрд╛рдж, рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЧрд┐рдпрд░рдореИрди рдХреЗ рдкрд╛рд╕ рд▓реМрдЯрддрд╛ рд╣реИред рдХрддрд╛рд░ рд╕рд░реНрд╡рд░ рдпрд╣ рджреЗрдЦрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕ рдХреНрд▓рд╛рдЗрдВрдЯ рдиреЗ рд╕рдорд╛рди рдирд╛рдо рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдп рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреЛ рдЗрд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо рднреЗрдЬрддрд╛ рд╣реИ (рдпрд╣ рд╣реИ рдпрджрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рдиреЗ рдХрд╛рд░реНрдп рдХреЛ рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рдпрджрд┐ рдХрд╛рд░реНрдп рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рд╣реИ, рддреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдХреБрдЫ рднреА рдирд╣реАрдВ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред ред

рдСрдкрд░реЗрд╢рди рдХреЗ рдЗрд╕ рд╕рд┐рджреНрдзрд╛рдВрдд рд╕реЗ рддреБрд░рдВрдд рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ?

1. рдЧрд┐рдпрд░рдореИрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдЪрд╛рд░ рд╡рд╕реНрддреБрдПрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ: рдЧреНрд░рд╛рд╣рдХ, рдХрд╛рд░реНрдп, рдХрд╛рд░реНрдпрдХрд░реНрддрд╛, рдиреМрдХрд░реА ред рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рд╡рд┐рд╡рд░рдг рдХрд╛рд░реНрдпрд╛рд▓рдп рдореЗрдВ рд╣реИред PHP рд╕рд╛рдЗрдЯ ред

2. рдкреНрд░реЗрд╖рд┐рдд рдбреЗрдЯрд╛ - рджреЛрдиреЛрдВ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рд╕рд░реНрд╡рд░ рдкрд░, рдФрд░ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рд╕реЗ рд╡рд╛рдкрд╕ - рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рд▓рд╛рдЗрди рд╣реИ, рдФрд░ рдХреЗрд╡рд▓ рдПрдХ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ рдХрдИ рддрд░реНрдХ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд╣реАрдВ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рдгреА - рдХреНрд░рдорд╛рдВрдХрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдХреЗрд╡рд▓ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рджреЛрд╣рд░рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдкреНрд░рд▓реЗрдЦрди рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╕рд╛рдордЧреНрд░реАред рдЕрдм рдмрд╛рд░реА рд╣реИред


рдЧрд┐рдпрд░рдореИрди рд╕реНрдерд╛рдкрдирд╛ рдФрд░ рдирд┐рдпрдВрддреНрд░рдг


рдЕрдЧрд░ рдХреЛрдИ рдмрдбрд╝реА рдЬрд░реВрд░рдд рд╣реИ, рддреЛ рдЖрдк рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рдЧрд┐рдпрд░рдореИрди рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд╛рд╡рд╛ рдореЗрдВ рдЗрд╕рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ:
https://launchpad.net/gearman-java

рд▓реЗрдХрд┐рди рд╣рдо рд▓рд┐рдирдХреНрд╕ рдХреЗ рддрд╣рдд рдХрд╛рдо рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ (рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдбреЗрдмрд┐рдпрди рдХреЗ рд▓рд┐рдП рд╣реИрдВ)ред
рд╕рд░реНрд╡рд░ рд╕реНрдерд╛рдкрдирд╛ рд╕реБрдЪрд╛рд░реВ рд░реВрдк рд╕реЗ рдЪрд▓рддреА рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВ:

рдпреЛрдЧреНрдпрддрд╛ рдЧрд┐рдпрд░рдореИрди-рдиреМрдХрд░реА-рд╕рд░реНрд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ

рдПрдХ рд╕рдлрд▓ рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рдж, рд╕рд░реНрд╡рд░ рдХреЛ рдЖрджрд┐ / init.d / рдЧрд┐рдпрд░рдореИрди-рдЬреЙрдм-рд╕рд░реНрд╡рд░ рд╕реЗ рд╕рд░рд▓ рдФрд░ рд╕реНрдкрд╖реНрдЯ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
{рд╢реБрд░реБрдЖрдд | рдмрдВрдж рдХрд░реЛ | рдкреБрдирд░рд╛рд░рдВрдн | рдмрд▓-рдкреБрдирдГ рд▓реЛрдб}
рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрд╕реНрдЯ рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ рд╣реИ, рдкреЛрд░реНрдЯ 4730 рд╣реИ


рд╕рд░реНрд╡рд░ рд╕реНрдерд┐рддрд┐ рдХреА рдирд┐рдЧрд░рд╛рдиреА

рд╕рд░реНрд╡рд░ рдкрд░ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдпрд╣ рджреЗрдЦрдиреЗ рдХреА рд╣рдореЗрд╢рд╛ рдЬрд░реВрд░рдд рд╣реЛрддреА рд╣реИ: рдХреМрди рд╕реЗ рдХрд╛рд░реНрдп рдкрдВрдЬреАрдХреГрдд рд╣реИрдВ, рдХрддрд╛рд░ рдореЗрдВ рдХрд┐рддрдиреЗ рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдХрд┐рддрдиреЗ рд╢реНрд░рдорд┐рдХ рдкрдВрдЬреАрдХреГрдд рд╣реИрдВред
рдпрд╣ рдХрдВрд╕реЛрд▓ рд╕реЗ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
(рдкреНрд░рддрд┐рдзреНрд╡рдирд┐ рд╕реНрдерд┐рддрд┐) | netcat 127.0.0.1 4730


рдЧрд┐рдпрд░рдореИрди рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдкрд░ рдХрддрд╛рд░ рдХрд╛ рднрд╛рдЧреНрдп

рд╕рд╡рд╛рд▓ рддреБрд░рдВрдд рдЙрдарддрд╛ рд╣реИ: рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рд╣рд╛рд░рд╛-рдЧрд┐рд░реА рдХреЗ рд╕рд╛рде рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рдЪрд▓ рд░рд╣реЗ рд╕рд░реНрд╡рд░ рдкрд░ рдХрддрд╛рд░ рдХрд╛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реНрдерд╛рдкрдирд╛ рдореЗрдВ, рдХрддрд╛рд░ рдХреЛ рдореЗрдореЛрд░реА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕рд░реНрд╡рд░ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рд╕реЗ рд╕рд░реНрд╡рд░ рдХреЛ рднреЗрдЬреЗ рдЧрдП рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд░рджреНрдж рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рд╕рд░реНрд╡рд░ рдкрд░ рд╕рднреА рд╢реНрд░рдорд┐рдХреЛрдВ рдХреЗ рдкрдВрдЬреАрдХрд░рдг рдХреЛ рд░рджреНрдж рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕реА рд╕рдордп, "рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдЦреЛрдпрд╛ рдХрдиреЗрдХреНрд╢рди" рдЬреИрд╕реЗ рдЕрдкрд╡рд╛рдж рд╢реНрд░рдорд┐рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрддреНрдкрдиреНрди рд╣реЛрддреЗ рд╣реИрдВред
рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдХрддрд╛рд░ рдХреЛ рдмрдЪрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, MySQL, PostgreSQL, SQLite рд╕рдорд░реНрдерд┐рдд рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рдХреА рдХрддрд╛рд░ рдХреЛ рдХреИрд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП рдпрд╣ рдХрд╛рд░реНрдпрд╛рд▓рдп рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдСрдирд▓рд╛рдЗрди:
http://gearman.org/index.php?id=manual:job_server#persistent_queues

рдпрд╣ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рднрд▓реЗ рд╣реА рдЖрдк рдХрддрд╛рд░ рдХреЛ рдмрдЪрд╛рддреЗ рд╣реИрдВ, рдЬрдм рд╕рд░реНрд╡рд░ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХрд╛рд░реНрдп рд╕рдВрдЪрд╛рд▓рдХреЛрдВ - рд╢реНрд░рдорд┐рдХреЛрдВ - рдЕрднреА рднреА рд╕рд░реНрд╡рд░ рдХреЛ "рдЧрд┐рд░рд╛рдирд╛" рд╣реЛрдЧрд╛, рдФрд░ рдЖрдкрдХреЛ рдпрд╛ рддреЛ рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рдЪрд╛рд▓реВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдпрд╛ рд╢реНрд░рдорд┐рдХреЛрдВ рдореЗрдВ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдХрд╛ рдкреВрд░реНрд╡рд╛рднрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред


рдкреВрд░реА рдХрддрд╛рд░ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░реЗрдВ рдФрд░ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдп рдХреА рдХрддрд╛рд░ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░реЗрдВ

рдпрджрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдХрддрд╛рд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рд╣реИ, рддреЛ рд╕рд░реНрд╡рд░ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдирд╛, рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдкреВрд░реА рдХрддрд╛рд░ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░ рджреЗрдЧрд╛ред рдпрджрд┐ рдХрддрд╛рд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИ, рддреЛ рд╕рд░реНрд╡рд░ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рдВрдмрдВрдзрд┐рдд рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП - рд╕рднреА рдпрд╛ рдЪреБрдирд┐рдВрджрд╛ рд░реВрдк рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рд╕рд░реНрд╡рд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдФрд░ рд╢реНрд░рдорд┐рдХреЛрдВ рджреЛрдиреЛрдВ рдореЗрдВ рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдлреЗрдВрдХ рджреЗрдЧрд╛ред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдПрдХ рд╕реНрдерд┐рддрд┐ рдЙрддреНрдкрдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИ рдЬрдм рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдХрддрд╛рд░ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг: рд╣рдо 100 рд╕рд╛рдЗрдЯреЛрдВ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддреЗ рд╣реИрдВ, рдПрдХ рдиреЗ рдЬрд╡рд╛рдм рджреЗрдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛, рдЗрд╕ рд╕рд╛рдЗрдЯ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрддрд╛рд░ рдореЗрдВ 1,000 рдХрд╛рд░реНрдп рдереЗ, рдЕрдиреНрдп рд╕рднреА рд╕рд╛рдЗрдЯреЛрдВ рдХреЗ рдбреЗрдЯрд╛ рдХрддрд╛рд░ рд╕рд░реНрд╡рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд░реБрдХреА рд╣реБрдИ рд╕рд╛рдЗрдЯ рдкрд░ рдХрддрд╛рд░ рдЫреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рдФрд░ рд╕рдмрд╕реЗ рджрд░реНрджрдирд╛рдХ рддрд░реАрдХрд╛ рдПрдХ рдирдХрд▓реА рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реИ рдЬреЛ рдХрддрд╛рд░ рд╕рд░реНрд╡рд░ рдкрд░ рдПрдХ рд╣реА рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдХрд╛рд░реНрдп рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдЬрд▓реНрджреА рд╕реЗ NULL, рдПрдХ рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ, рдпрд╛ рдЬреЛ рдХреБрдЫ рднреА рдЖрдкрдХреЛ рдкрд╕рдВрдж рд╣реИ - рдореБрдЦреНрдп рдЪреАрдЬ рддреЗрдЬ рд╣реИред рдпрд╣ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рд╕рднреА рд▓рдВрдмрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░реЗрдЧрд╛, рдХрддрд╛рд░ рдХреЛ рд╕рд╛рдл рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред


рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░реЗрдВ

рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реЛ рд╕рдХрддреА рд╣реИ? рдЦреИрд░, рд╕реНрдкрд╖реНрдЯ рд╕реНрдерд┐рддрд┐ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЬрдм рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдЬрдореЗ рд╣реБрдП рд╣реИ рдФрд░ рдпрд╣ рд╕рдВрджреЗрд╣ рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рдПрдХ рдФрд░ рднреА рд╣реИ, рдмрд╣реБрдд рдмрд╛рд░-рдмрд╛рд░ред
рд╕реНрдерд┐рддрд┐: рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рд╕рд░реНрд╡рд░ рдкрд░ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд┐рдпрд╛ред рдпрджрд┐ рдЗрд╕ рд╕рдордп рдЖрдк рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреЛрдб рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕реЗ рдХрд┐рддрдирд╛ рднреА рдмрдЪрд╛рдПрдВ, рдХрддрд╛рд░ рд╕рд░реНрд╡рд░ рд╕реЗ рдХреЛрдб рдЙрд╕ рд╕рдордп рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬрдм рдХрд╛рд░реНрдп рдкрдВрдЬреАрдХреГрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдкреНрд░рднрд╛рд╡реА рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд▓рд┐рдП - рдЕрд░реНрдерд╛рддреН, рд╕рд░реНрд╡рд░ рд╕реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЕрд░реНрдерд╛рдд рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд░реЛрдХрдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рдирд╛ рд╣реЛрдЧрд╛ред рд╡рд┐рдзрд┐рдпрд╛рдВ рддреБрдЪреНрдЫ рд╣реИрдВ: рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ, рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рди рдХрд░реЗрдВ рдЬреИрд╕реЗ рдХрд┐ рдПрдЧреНрдЬрд┐рдЯ_рд╡рд░реНрдХрд░ рдФрд░ рдЗрд╕реЗ рддрд╛рдЬ рд╕реЗ рд▓реЙрдиреНрдЪ рдХрд░рдирд╛ рдЖрджрд┐ред


рдЧрд┐рдпрд░рдореИрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП PECL рдФрд░ REAR php рдПрдХреНрд╕рдЯреЗрдВрд╢рди


Php рдореЗрдВ рдЧрд┐рдпрд░рдореИрди рдХрддрд╛рд░ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рджреЛ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: pecl рдЧрд┐рдпрд░рдореИрди рдФрд░ рдирд╛рд╢рдкрд╛рддреА NetGGman

рдЗрди рдПрдХреНрд╕рдЯреЗрдВрд╢рдиреЛрдВ рдХреЗ рдмреАрдЪ рдПрдХ рдмреБрдирд┐рдпрд╛рджреА рдЕрдВрддрд░ рд╣реИред


рдирд╛рд╢рдкрд╛рддреА Net_Gearman

рдирд╛рд╢рдкрд╛рддреА Net_Gearman рдХреЗрд╡рд▓ рдХреБрдЫ php рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВред рдФрд░ рд╡рд╣ рд╕рдм рд╣реИред рд╕рд░реНрд╡рд░ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ:
рдирд╛рд╢рдкрд╛рддреА рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ Net_Gearman рдЪреИрдирд▓: //pear.php.net/Net_Gearman-0.2.3
рдЖрдк рдЗрд╕реЗ рд╕рд░реНрд╡рд░ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рднреА рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдмрд╕ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдЕрдирдЬрд╝рд┐рдк рдХрд░реЗрдВ, рдХрдиреЗрдХреНрд╢рди рдПрд╕реАрд╕реА рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВред рдХрдХреНрд╖рд╛рдПрдВ рдФрд░ рдпрд╣ рд╡рд╣ рд╣реИ - рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП

function __autoload($className){ //  pear Net_Gearman,  Net_Gearman_Job if(strstr($className, 'Net_Gearman_') and !strstr($className, 'Net_Gearman_Job_')){ $className = str_replace('Net_Gearman_', '', $className); include_once PATH_TO_PEAR_NET_GEARMAN.$className.'.php'; } //  pear Net_Gearman_Job if(strstr($className, 'Net_Gearman_Job_')){ $className = str_replace('Net_Gearman_Job_', '', $className); include_once PATH_TO_PEAR_NET_GEARMAN.'Job/'.$className.'.php'; } } 

рдпрд╣, рд╡реИрд╕реЗ, рдПрдХ рд╣реА рдбреЗрдирд╡рд░ рдпрд╛ рдУрдкрдирд╕реЗрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ php рдореЗрдВ рдЧрд┐рдпрд░рдореИрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИред

рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдПрдХ рдЕрд▓реНрдлрд╝рд╛ рд░рд┐рд▓реАрдЬрд╝ рджрд┐рдирд╛рдВрдХ 2009 рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдбрд░рд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ: рдЖрд╡рд╢реНрдпрдХ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рднреА рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рдШрдЯрдХреЛрдВ / рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рддрд┐рдерд┐ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рд▓рд╛рдЗрдмреНрд░реЗрд░реА php5.3 рдкрд░ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╣реИред * рдФрд░ рдЗрд╕рдореЗрдВ рд╕рдВрд╢реЛрдзрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдм рдЦреБрд╢реА рдЧрд┐рдпрд░рдореИрди рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдмрд╛рддрдЪреАрдд рдХрд░рддреА рд╣реИ? рд╕реЙрдХреЗрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рд╕рд░реНрд╡рд░ рдХреЛ рдХрдорд╛рдВрдб рднреЗрдЬрдирд╛ (рдпрд╣рд╛рдВ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рд╛рдЗрдЯ рдкрд░ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд╛ рд╡рд┐рд╡рд░рдг рд╣реИ )

рд╣рдо рдирд╛рд╢рдкрд╛рддреА рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╡рд░рдг рдиреЛрдЯ рдХрд░рддреЗ рд╣реИрдВ Net_Gearman: рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рд╕рд░реНрд╡рд░ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдФрд░ (рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ) рдЗрд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╕рд╛рдзрди рд╣реИ, рдЬреЛ рдЗрд╕реЗ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП рдЙрдкрд░реЛрдХреНрдд рд╕реНрдХреНрд░рд┐рдкреНрдЯред


рдкреЗрдХрд▓ рдЧрд┐рдпрд░рдореИрди

рд╕рднреА рд▓рд╛рднреЛрдВ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдирд╛рд╢рдкрд╛рддреА Net_Gearman рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЦрд░рд╛рдм рд╣реИ рдФрд░, рдЬреИрд╕рд╛ рдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЗрд╕реЗ рдХрд╣реАрдВ рд░рдЦрд╛ рд╣реИ, рдХреБрдЫ рдЕрдЬреАрдм рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, IDE - phpStorm, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Net_Gearman рд╡рд░реНрдЧ ( рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдХрд╛рдо рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдмреИрд╕рд╛рдЦреА рдХреЛ рдХрд╕рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ ) рдФрд░ pecl рдЧрд┐рдпрд░рдореИрди рдХрд╛рдо рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рдЕрдиреБрдХреВрд▓ рд╣реИред
Pecl рдЧрд┐рдпрд░рдореИрди рдФрд░ рдирд╛рд╢рдкрд╛рддреА Net_gearman рдХреЗ рдмреАрдЪ рдореБрдЦреНрдп рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ pecl рдЧрд┐рдпрд░рдореИрди рд╕реАрдзреЗ рд╕рд░реНрд╡рд░ рд╕реЗ рдЗрдВрдЯрд░реИрдХреНрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ - рдпрд╣ libgearman C рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╡рд░рдг рд╣реИред

рдкреАрдХ рдЧрд┐рдпрд░рдореИрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рддреБрд░рдВрдд рдкрд╕рдВрдж рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛:
pecl рд╕реНрдерд╛рдкрд┐рдд рдЧрд┐рдпрд░рдореИрди
рд▓реЗрдХрд┐рди рд╡рд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдЕрдВрдд рдореЗрдВ, рдПрдХ рд╕рдВрджреЗрд╢ рдпрд╣ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ libgearman рд╕рдВрд╕реНрдХрд░рдг 0.21 рдФрд░ рдЙрдЪреНрдЪрддрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдРрд╕реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдЕрд╕реЗрдВрдмрд▓реА рдЗрд╕рдХреЗ рд╕рд╛рде рдХреБрдЫ рдФрд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рддреА рд╣реИ, рдФрд░ рдпрд╣ рд╕рдм рд╕рдлрд▓ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░, pecl-gearman-0.7.0 рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рд╕рд┐рдлрд╛рд░рд┐рд╢реЗрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдмрдЧ рд╣реИ - рдпрд╣ рдПрдХ рд╕реЗрдЧрдореЗрдВрдЯреЗрд╢рди рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рджреБрд░реНрдШрдЯрдирд╛ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред
рдХрдИ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдпрд╣ рдкрд╛рдпрд╛ рдЧрдпрд╛ рдХрд┐ рдпрд╣ 0.8.1 рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
рдпрд╣рд╛рдБ debian6 / php5.3 * "рд╕реНрдХреНрд░реИрдЪ рд╕реЗ" рдХреЗ рд▓рд┐рдП рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдСрд░реНрдбрд░ рд╣реИ, рд╕рд░реНрд╡рд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ (debian7 / php5.4 рдХреЗ рд▓рд┐рдП рдпрд╣ рдкреНрд░рдХрд╛рд╢рди рджреЗрдЦреЗрдВ):

 aptitude install gearman-job-server aptitude install php5-dev aptitude install php-pear aptitude install make aptitude install libgearman-dev cd /tmp pecl download gearman-0.8.1 tar -xvf gearman-0.8.1.tgz cd gearman-0.8.1 phpize ./configure make make test make install echo 'extension=gearman.so' > /etc/php5/conf.d/gearman.ini 


рдЕрдм рдЖрдк рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рд╕рднреА рд╕реБрдВрджрд░рддрд╛ рдХрд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред IDE рдореЗрдВ pecl рдЧрд┐рдпрд░рдореИрди рдХреЗ рд▓рд┐рдП рдХрдХреНрд╖рд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЖрдЧреЗ рдХреЛрдИ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд╕рднреА рдЙрджрд╛рд╣рд░рдг pecl рдЧрд┐рдпрд░рдореИрди рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг



рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рдЧреНрд░рд╛рд╣рдХ рдФрд░ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛

рдЧреНрд░рд╛рд╣рдХ
 <?php $client = new GearmanClient(); /* -  true   ,     .       echo(''),               */ $client->addServer('192.168.68.4'); $client->setTimeout(29000); /*true/false     */ $haveGoodServer = $client->echo(''); var_dump($haveGoodServer); $data = 'slon yooo'; /*     Gearman   */ $res = $client->do('function_revert_string_and_caps', $data); /*  ,     ,     */ echo $res; 


рдПрдХ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛
 <?php $worker = new GearmanWorker(); $worker->addServer('192.168.68.4'); /*  ,    - function_revert_string_and_caps,      - 'revCaps*/ $worker->addFunction('function_revert_string_and_caps', 'revCaps'); /* .       */ $worker->work(); /*      -   */ //while($worker->work()){}; //   - ,   - - job function revCaps($job){ /*  job ,  */ $content = $job->workload(); return mb_strtoupper(strrev($content)); } 

рдЙрджрд╛рд╣рд░рдг рд╡реАрдбрд┐рдпреЛ



рдЖрдВрд╢рд┐рдХ рдбреЗрдЯрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдФрд░ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд╕рд╛рде рдЕрддрд┐рд░рд┐рдХреНрдд рдбреЗрдЯрд╛ рд╡рд┐рдирд┐рдордп

рдХреНрд▓рд╛рдЗрдВрдЯ рдореЗрдВ рдбреВ рдСрдкрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣рдореЗрд╢рд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рд╕рд╛рдзрд╛рд░рдг рдХреЙрд▓рдмреИрдХ f рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд░реНрд╡рд░ рд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдбреЗрдЯрд╛ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдЕрдХреНрд╕рд░ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдбреЗрдЯрд╛ рднрд╛рдЧреЛрдВ рдореЗрдВ рдкреНрд░рд╕рд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕рдВрд╕рд╛рдзрд┐рдд рднрд╛рдЧреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдкреНрд░рдЧрддрд┐ рдмрд╛рд░ рдХреЗ рд▓рд┐рдПред
рдЧреНрд░рд╛рд╣рдХ
 <?php $client = new GearmanClient(); $client->addServer('192.168.68.4'); $data = ''; /* .     */ $client->addTask('function_serial_send', $data); /*,  -        */ $client->setCreatedCallback('createTask'); /*   - -   */ function createTask(GearmanTask $task){ echo "Start data from ".$task->jobHandle()."\n"; } /*,  -    */ $client->setDataCallback('getData'); /* -    */ function getData(GearmanTask $task){ echo "received:".$task->data()."\n\n"; } /*,  -    Complete -    */ $client->setCompleteCallback('stopTask'); /*- -     */ function stopTask(){ echo "task Stop\n"; exit; } /*,  -      */ $client->setStatusCallback('getStatus'); /*    %*/ function getStatus(GearmanTask $task){ echo "Handled: ".$task->taskNumerator() / $task->taskDenominator()*(100)."%\n"; } /*   -    . :       - callback -      */ $client->runTasks(); 


рдПрдХ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛
 <?php $worker = new GearmanWorker(); $worker->addServer('192.168.68.4'); $worker->addFunction('function_serial_send', 'sendDataAndStatus'); /* -   ,  worker  */ while($worker->work()){} function sendDataAndStatus(GearmanJob $job){ $arr = array('one','two', 'three', 'four', 'five'); $i = 1; foreach ($arr as $diggo){ /*   -    1,5 2,5  ..   - Numerator,   тАЬтАЭ,  Denumenator - тАЬтАЭ.     ,    long*/ $job->sendStatus($i, count($arr)); /*  */ $job->sendData($diggo); echo "send data: ".$diggo, "\n"; $i++; sleep(1); } /*   -       */ $job->sendComplete(''); } 


рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд░рди рд╡реАрдбрд┐рдпреЛ:



рдкреГрд╖реНрдарднреВрдорд┐ рдХрд╛рд░реНрдп рдФрд░ рдкреНрд░рд╛рдердорд┐рдХрддрд╛

рдХрд╛рд░реНрдп рдХреА рд╕реНрдерд┐рддрд┐ рд╕рд╛рдорд╛рдиреНрдп рдпрд╛ рдкреГрд╖реНрдарднреВрдорд┐ (рд╕рд┐рдВрдХреНрд░реЛрдирд╕ / рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕) рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рдореЗрдВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реИред рдпрджрд┐ рдХрд╛рд░реНрдп рдХреЛ рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд░реНрд╡рд░ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд░реНрд╡рд░ рдкрд░ рдЗрд╕реЗ "рдереНрд░реЛ" рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдЖрдЧреЗ рдХреЗ рднрд╛рдЧреНрдп рдореЗрдВ рдХреЛрдИ рджрд┐рд▓рдЪрд╕реНрдкреА рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдХрд╛рд░реНрдп рд╕рд╛рдорд╛рдиреНрдп рд╣реИ, рддреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рд╕рд░реНрд╡рд░ рд╕реЗ рдЗрд╕рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреА рдЙрдореНрдореАрдж рд╣реИред
рдкреГрд╖реНрдарднреВрдорд┐ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдЙрдкрд╕рд░реНрдЧ рдкреГрд╖реНрдарднреВрдорд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рддреАрди рд╕реНрддрд░ рд╣реИрдВ - рд╕рд╛рдорд╛рдиреНрдп (рдЙрдкрд╕рд░реНрдЧ рдХреЗ рдмрд┐рдирд╛), рдирд┐рдореНрди / рдЙрдЪреНрдЪ рдЕрдиреБрдкрд╛рддред рдирд┐рдореНрди / рдЙрдЪреНрдЪ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, addTaskHighBackground рд╡рд┐рдзрд┐ - рдПрдХ рдЙрдЪреНрдЪ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдкреГрд╖реНрдарднреВрдорд┐ рдХрд╛рд░реНрдп рдЬреЛрдбрд╝реЗрдВред
рдпрд╣ рд╕рдм рдХрд╛рд░реНрдпрд╛рд▓рдп рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЪрд┐рддреНрд░рд┐рдд рд╣реИ ред GearmanClient рдореЗрдВ рдкреНрд░рд▓реЗрдЦрди


рдЧрд┐рдпрд░рдореИрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ PHP рдореЗрдВ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрдореНрдкреНрдпреВрдЯрд┐рдВрдЧ


рдХреНрд╖реБрдзрд╛рд╡рд░реНрдзрдХ рдХреЗ рд▓рд┐рдП, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рд╕рдмрд╕реЗ рд╕реНрд╡рд╛рджрд┐рд╖реНрдЯред
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдХреЛрдб рдХреБрдЫ рд╕реНрд╡реИрдЪреНрдЫрд┐рдХ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдХреБрдЫ рднреА рд╕реИрдиреНрдп рдирд╣реАрдВ рд╣реИ: рдЧреНрд░рд╛рд╣рдХ рдХрддрд╛рд░ рд╕рд░реНрд╡рд░ рдкрд░ 4 + рдХрд╛рд░реНрдп рдЬреЛрдбрд╝рддрд╛ рд╣реИ, 4 рд╢реНрд░рдорд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВред
рдХрд╛рд░реНрдп рд╕реНрд╡рдпрдВ рдпреИрдВрдбреЗрдХреНрд╕ рдЯреНрд░рд╛рдВрд╕рд▓реЗрдЯ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд╛рда рдХреЗ рдЯреБрдХрдбрд╝реЛрдВ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдПрдХ рдкреВрд░реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдкреВрд░рд╛ рдХрд╛рд░реНрдп рд░реВрд╕реА рд╕реЗ рдпреВрдХреНрд░реЗрдиреА рдореЗрдВ рдЧреЙрдбрдлрд╛рджрд░ рдкреБрд╕реНрддрдХ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░ рд░рд╣рд╛ рд╣реИред
рдпреЗ рд░рд╣рд╛ рд╡реАрдбрд┐рдпреЛ:

Source: https://habr.com/ru/post/In142210/


All Articles