Bir PHP sayfası arka planda bir soap isteği işleme bitirmek için bekleyin ve daha sonra bir sonraki deyim yürütmek?

0 Cevap php

Ben bir uzak sunucuya bir soap isteği çağıran PHP kodu var. Uzak sunucu soap isteği işler ve sonra sonuçlar getirebilir.

İdeal, SAOP arama isteğinde 5 saniye bekleyin ve sonra gidip sonuçları için bakmak istiyorum. Uzak sunucu olmanın nedeni işleme oluyor bitirmek için birkaç saniye sürer. Ben uzak sunucuya üzerinde hiçbir kontrole sahip.

Şu anda ben bu kodu vardır:

$object = new Resource_Object();
$identifier = $_GET['id'];
$object->sendBatch($id));
sleep(5);
$results = $object->getBatchReport();
echo $results;

Yukarıdaki kod ile sorun sendBatch tamamlamak için birkaç saniye sürer. Ekledikten sonra sleep(5) sayfa yüklemek için 5 saniye daha uzun sürebilir, ama yine de sonuçlar görüntülenir değildir. Ben yine sayfayı yüklemek, ya da çağrı getBatchReport() başka bir sayfadan eğer, sonuçlar vardır.

Bu tüm sayfayı bir kerede çalıştırmak neden olan HTML vatansızlık ile ilgisi var sanırım. Ben 'çıktı tamponlama' kullanarak kabul ama gerçekten çıktı tamponlama için ne olduğunu anlamıyorum.

I was also considering using jQuery and Ajax to continuously poll getBatchReport(), but the problem is that I need to call this page from another location and as sendBatch() grows the 5 second delay might go up, probably to about 2 minutes. I don't think Ajax will work if I call this page remotely (this page is already being called in the background spawned by /dev/null 2>&1 & ).

Ben bildiğim kadarıyla herhangi bir geri çağırma işlevlerini yok bildiğiniz gibi sendBatch rutin belirtilen ve uzak sunucuya üzerinde hiçbir kontrole sahip. Ben uzak sunucuyu bütün zaman sorgulamak zorunda anlamına gelir çünkü CRON kullanmamayı tercih ederim.

Herhangi bir fikir?

0 Cevap