Zamanlanmış görev asılı olarak php script çalışıyor - yardım!

2 Cevap php

Ben komut satırından çalışan bir php komut dosyası inşa ettik. Bu bir pop3 e-posta hesabı ve yüklemeler tüm e-postalar içine bir bağlantı açar ve bir veritabanına yazar ve bunları bir kez indirilen siler. Ben bir bat dosyası ile komut ile çağrılan bu komut dosyası var. sırayla ben yarasa dosyasını her 5 dakikada bir çağıran bir zamanlanmış görev oluşturduk. Şey zamanlarda büyük ekleri ile e-postalar ve komut aslında çevrimdışı ekleri ve ham dosyaları olarak saklar indirir ve komut ölmek kalmaması hiçbir zaman aşımı olamayacağını aslında sıfıra dışarı zamanı ayarlanmış olması indirme sırasında.

Ben programı, bazen duruyor ve o onun biraz can sıkıcı olduğunu tespit ettik - bağlantıyı müzakere ve posta sunucusuna bağlı alıyorum zaman zaman kilitleniyor bir nokta yani vardır. Zaman aşımı sıfıra ayarlanmış olduğundan ve taht pozisyonda sıkışmış kalmak gibi görünüyor. Teknik olarak kapattı Ve bundan dolayı görevi çalıştırmak değil.

Ben e-postaları indirirken programın zaman aşımına uğramayan gerektiğini istiyor - ancak bir bağlantı müzakere veya ileti sunucusuna bağlanmaya çalışıyor noktalarda bu noktada kendisi de sadece bir zaman aşımı değil, program yürütme kalanı olmalıdır.

Bunu nasıl yapabilirim: (

2 Cevap

Zaman aşımı değeri doğrudan yuvalarını kullanarak eğer socket_set_timeout() kullanılarak ayarlanabilir. Detaylı bilgi için this other question de bir göz atabilirsiniz. Eğer bir kütüphaneyi kullanarak ediyorsanız, onun dokümanları kontrol etmelisiniz. O really aşımı sorunu Ama eğer ben çok kontrol olur. Log php errors into a file ve hepsini göz atabilirsiniz. max_execution_time (10 dakika gibi) bazı kabul edilebilir bir değere ayarlayın ve tekrar kilitlendiği zaman hep başarısız oluyor aynı çizgi ise, günlüklerini denetleyin.

Ben bir cevap isteyenler için son zamanlarda bu sorun koştu. Ben doğrudan. Php dosyasını çağırarak görev zamanlayıcısı vardı. Bu asmak ve asla bir şey dönecekti.

Ben firefox.exe çalışan ve bir parametre olarak url göndererek görev yöneticisi aracılığıyla. Php dosyasını çalıştırmak için doğru yolu olduğunu öğrendim.

"http://host/dir/file.php" firefox.exe