Web servis çağrı zamanlayıcısı

2 Cevap

Ben sabun ile bir web hizmeti için bir istek gönderir bir PHP komut dosyası var. Ben geriye sadece bir kaç saniye içinde bir yanıt almak için bekliyoruz, ama 30 saniye içinde bir yanıt alırsınız yoksa benim ilk isteği işeme başka isteği göndermek gerekir.

Bu zamanlayıcı özelliği işlemek için en iyi yolu herhangi bir öneriniz? PHP'nin kümesi _time _limit ayar bakıyor olmalıdır? Herhangi bir fikir veya genel fikirler arıyor.

Teşekkürler.

2 Cevap

Web üzerinde bulunan ve doğru yönde atılmış bir adım gibi görünüyor ...

bir özelliktir -> Bir bağlantı zaman aşımı ayarı

$ Client = SoapClient ($ wsdl, array ("connection_timeout" => 5)) Yeni; connection_timeout seçeneği SOAP servisine bağlantı için zaman aşımını saniye olarak tanımlar. Bu seçenek, yavaş yanıtları ile hizmetler için bir zaman aşımı tanımlamaz. Aramalar default_socket_timeout ayarı kullanılabilir bitirmek için beklemek zaman sınırı.

If we only had multi threading....
My approach (although you can do async calls with CURL) would be to write a script that manages this process. This script would do:

  1. Arama komut etkinleştirmek için CURL kullanarak (istemci tarafında) kabuk / cron / uyumsuz javascript kullanarak / uyumsuz çağrı.
  2. Arama komut dosyası (aynı zamanda bayrak-> Ben bitmiş olarak hizmet cevap çağıran komut dosyası tarafından bellek / diske kaydedilir) cevabı döndü her birkaç saniyede bir kontrol
  3. Geçti 30 saniye - çağıran betiğin geçerli örneğini öldürmek başka bir arama komut örneğini.

Bu çok ham açıklamasıdır ve ince ayrıntılar daha iyi tanımlanmalıdır.