Php $ gmclient-> do ("bir_işlev", "someData") kullanarak ona bir istekte sonra bir fonksiyonu php için bir değer döndürmek için Gearman almak için çalışıyorum. Ancak, php istemci sadece zaman aşımına. Ben kullanıyorum tam kodu düz php manuel olduğunu. I http://docs.php.net/manual/en/gearmanclient.do.php dan örnek # 1 kullanıyorum
Tarayıcı bana bu mesajı veriyor:
Bu web sayfası kullanılamıyor.
The webpage at http://yoursite.com/client.php might be temporarily down or it may have moved permanently to a new web address.
More information on this error. Below is the original error message
Error 324 (net::ERR_EMPTY_RESPONSE): Unknown error.
Bu hata mesajı ayrıntılı yardımcı olur tarayıcısı Chrome.
Bir fark yapar durumda, worker.php dosya komutu "php worker.php" kullanarak bir terminal penceresinde idam ediliyor. Ben Ubuntu 9.10 Karmic Koala üzerinde çalıştırıyorum. I http://blog.stuartherbert.com/php/2010/02/26/getting-gearman-up-and-running-on-ubuntu-karmic/ bulunan yönergeleri kullanarak Gearman yüklü
Ben Terminal penceresini kontrol ve Gearman isteği alma ve terminale sonuçları echos - bu sadece geri istemciye gönderilmez.
Nihai hedef idam edildi işlevi istemci dönüş değeri dönmek ve kullanıcıya bu değeri görüntülemek için Gearman elde etmektir.
GÜNCELLEME:
Talep olarak, kod aşağıda:
worker.php (işçi)
<?php
echo "Starting\n";
# Create our worker object.
$gmworker= new GearmanWorker();
# Add default server (localhost).
$gmworker->addServer();
# Register function "reverse" with the server. Change the worker function to
# "reverse_fn_fast" for a faster worker with no output.
$gmworker->addFunction("reverse", "reverse_fn");
print "Waiting for job...\n";
while($gmworker->work())
{
if ($gmworker->returnCode() != GEARMAN_SUCCESS)
{
echo "return_code: " . $gmworker->returnCode() . "\n";
break;
}
}
function reverse_fn($job)
{
return strrev($job->workload());
}
?>
client.php (istemci kodu - bu tarayıcı yükleme am sayfası)
<?php
# Client code
echo "Starting\n";
# Create our client object.
$gmclient= new GearmanClient();
# Add default server (localhost).
$gmclient->addServer();
echo "Sending job\n";
$result = $gmclient->do("reverse", "Hello!");
echo "Success: $result\n";
?>
O çalışma olduğunu söyledi Aşağıdaki yorumlar .. Ben çalışma değildi, tekrarlayın. Sadece I $ gmclient-> değişti çünkü çalışmak için ortaya do $ gmclient-> doBackground hangi çıkış iş kimliği değil, işlevi gerçek sonucu.
FINAL UPDATE (WITH SOLUTION)
Süre çalıştıktan sonra, ben bir kodlama hatası olmadığını anladım. Gearman yanlış monte edildi. Kullanmak yerine apt-get install, ben elle bir şeyler yapmaya karar verdim. Ben Gearman sitede (http://gearman.org/index.php?id=download) dan gearmand (c) indirildi. Ben de o zaman http://gearman.org/index.php?id=getting_started ile başlayan Gearman sitede öğreticiler kullanılan ve daha sonra http://gearman.org/index.php?id=gearman_php_extension