Biz (aslında pek çok sorunun kaynağı, ama göç şu anda bir seçenek değildir) bir Windows sunucu üzerinde PHP yayınlanıyor. Bir kullanıcı tarafından başlatılan eylem gibi bir e-posta kapalı gönderme veya emin bazı yapma gibi kullanıcı da başarılı olmadığını bilmek gerekir ya da başarısız değil ve hangi zaman alacak bir kaç şey, tekmelemek için gereken bir kaç nokta vardır Üçüncü taraf hesaplar güncellenir. Ben sadece pcntl_fork()
ile çatal olsaydı, bu çok basit olurdu, ama PCNTL işlevleri Windows mevcut değildir.
Ben alabilirim yakın bu tür bir şey yapmak gibi görünüyor:
exec( 'php-cgi.exe somescript.php' );
Ancak, bu çok daha karmaşık olacaktır. Ben başlaması gereken eylemler zaten çalışan sürecinde mevcut olacak bağlamda bir çok güveniyor; Yukarıdaki örnek kullanmak için, ben gerekli verileri anlamaya ve bir şekilde yeni komut bunu temin etmek gerekir. Ben çatal olsaydı, sadece, ana süreç erken dönmek icar bir kaç daha fazla şeyler üzerinde çalışmak için çocuk bırakarak meselesi olurdu.
Windows üzerinde derlenmiş çeşitli PCNTL işlevleri almak kendi çalışmaları hakkında konuşurken birkaç kişi bulduk, ama hiçbiri kullanılabilir bir şey (kırık bağlantılar, vb) var gibiydi.
this question benim gibi hemen hemen aynı adı olmasına rağmen, bu sorun çatala gerek daha infaz zaman aşımı oldu gibi görünüyor. Yani, php-cgi çağrı ile başa çıkmak için sadece biraz refactor benim en iyi seçenek olduğunu, ya da diğer seçenekler vardır?
Düzenleme: exec()
bu çağrı dönene kadar bekler gibi, en azından bana bunu diğer bazı yönünü bulmaktan olmadan, bunun için çalışmaz gibi görünüyor. Ben tür exec( 'start php-cgi.exe somescript.php' );
gibi START
diye düşündüm, ancak diğer komut bitene kadar o hala bekler.