Arka planda bir defada 30 php komut dosyası çalıştırma

4 Cevap php

Ben farklı bir argüman ile 30 paralel kez her çalıştırmalısınız bir PHP komut dosyası var. Her komut mümkün olduğunca işlemciye kadar bile maruz olabilir bunu yapmak için en iyi yolu nedir?

4 Cevap

Problem description

Diğer bazı kullanıcılar (beni de) anlatıyorsun gibi biraz daha açıklama (belki kod örnekleri) vermelidir. Örneğin bu görevleri hiç ya da sadece bir kez php script denir edilirken için çalışmalıdır?

Message Queue

Öncelikle bence eğer mümkünse bir kerede ancak zamanlama (PC nazik olun) onları örneğin beanstalkd gibi bir ileti kuyruğu ile çok görevleri çalıştırmak için kaçınılmalıdır

PHP solution

Ben PHP nedeniyle diş modeli (hayır) sizin sorunu için doğru araç olduğunu sanmıyorum. Konular hafif ve yeni süreç oluşturma ağır. Stroncium açıklayan gibi bunu yapabilirdi. Benim görüşüm paylaşılan ana bu kod çalıştıran tüm kullanıcılar çalışan süreçleri uzun aday olacağını, çünkü eğer onlar üzerinde kullanır (çok fazla PC kullanmak) sunucu olurdu takdir olmayacak olmasıdır.

Quoto from nettuts

PHP yeteneğine ne olduğunu bilmek için PHP'nin yaratıcısı daha iyi bir kaynak yoktur. Rasmus Lerdorf 1995 yılında PHP oluşturulan, ve o zamandan beri dil İnternetin yüzü değişiyor, geliştirici topluluğu aracılığıyla orman yangını gibi yayıldı. Ancak, Rasmus o niyet ile PHP yaratmadı. PHP web geliştirme sorunları çözmek için bir ihtiyaç ortaya oluşturuldu.

Ancak, her şey için PHP kullanamazsınız. Lerdorf PHP gerçekten araç kutusunda sadece bir araç olduğunu kabul etmek ilk ve hatta PHP sınırlamaları vardır olmasıdır.

Better language

Like I said previously I don't think PHP is the right tool. Some languages which I think could solve the problem better:

  • java
  • piton
  • C

Tabii Kapalı parçacığı modelini destekleyen daha bir çok dilde iş için doğru bir araçtır, ancak PHP dillendirilen bu gibi görevler için tasarlanmış değildir. Php Rasmus bile yaratıcısı bunu doğruluyor. Ben bazı oldukça iyi noktaları vardır düşünüyorum nettuts bu listede bu konuda okuyabilirsiniz.

Google app engine

Son I google app engine adlı taskqueu API bakmak için size tavsiye ediyorum. Bu da bir gerçek iyi bir seçenek ;) Çünkü. Ben bile iyi seçenek düşünebilirsiniz. Eğer ücretsiz bir teklif var ve teklif aşarsanız maliyetleri adil. Kancalar PHP kodlu olabilir böylece görev kuyruğu webhooks kullanır.

Seni (çok) endişelenmenize gerek kendi CPU yakınlık sanmıyorum, onun I / O her süreç haline (kelime oyununu bağışlayın) bağlı bağlı nasıl.

Işletim sistemi gibi bir UNIX kullanıyorsanız, size daha fazla disk / network / veritabanı erişimi yapıyor olacak tahmin işlemleri için ayarlamak için nice komutunu kullanarak deneyebilirsiniz, ama ben herhangi görürsünüz sanmıyorum önemli hız.

Tüm işlemler I / O aynı miktarda işlemek için gidiyoruz eğer, muhtemelen sadece çekirdeğin programlayıcısını işini icar daha kapalı.

Lütfen işler aslında gerçekleştirerek ne ilişkin biraz daha bilgi son derece yararlı olacaktır.

Eğer CLI çalıştırırsanız 29-30 çocuk süreçleri çatal ve orada kod çalıştırabilir. Eğer isterseniz, her çocuk veya seri bağlantı onlara açık yuva ile bir ana süreci olabilir. Sen çoğunlukla onlar aynı önceliğe sahipse çekirdek süreçlerini dengelemek umuyoruz olurdu.

Sorunun basitliği göz önüne alındığında, ben size basit cevap aramak öneririz. Üst kapalı, ben 30 tartışmalara döngü bir örneğini kullanarak düşünebilirsiniz söyleyebilirim.