(PECL gearman >= 0.5.0)
GearmanWorker::work β ΠΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Π½ΠΈΠΉ
ΠΠ΄ΡΡ ΠΎΡ ΡΠ΅ΡΠ²Π΅ΡΠ° Π·Π°Π΄Π°Π½ΠΈΠ΅, Π° Π·Π°ΡΠ΅ΠΌ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ callback-ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ
Π΅Π³ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΡΠ·ΡΠ²Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ ΡΡΠΎΠ²Π½Ρ E_WARNING Ρ
ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΠΎΡΠΈΠ±ΠΊΠ΅ Gearman Π² ΡΠ»ΡΡΠ°ΡΡ
, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ
ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ
ΠΎΡ GEARMAN_SUCCESS, GEARMAN_IO_WAIT
ΠΈΠ»ΠΈ GEARMAN_WORK_FAIL.
Π‘ΠΈΠ³Π½Π°ΡΡΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ².
Π€ΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ true, Π΅ΡΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»Π°ΡΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ, ΠΈΠ»ΠΈ false, Π΅ΡΠ»ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΎΡΠΈΠ±ΠΊΠ°.
ΠΡΠΈΠΌΠ΅Ρ #1 ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ GearmanWorker::work()
<?php
# ΡΠΎΠ·Π΄Π°ΡΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ
$worker = new GearmanWorker();
# Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΠ΅ΡΠ²Π΅Ρ Π·Π°Π΄Π°Π½ΠΈΠΉ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ (localhost)
$worker->addServer();
# Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ callback-ΡΡΠ½ΠΊΡΠΈΡ
$worker->addFunction("reverse", "my_reverse_function");
# Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ, ΠΎΠΆΠΈΠ΄Π°ΡΡΠΈΠΉ Π·Π°Π΄Π°Π½ΠΈΠΉ ΠΎΡ ΡΠ΅ΡΠ²Π΅ΡΠ°
while ($worker->work());
function my_reverse_function($job)
{
return strrev($job->workload());
}
?>