Birçok rss / xml İşleminiz sunucusu aşırı yükleme olmadan bir cron dosyasında beslemeleri

3 Cevap php

Ben bir süre için varlık bir kez her 20 dakikada bir çalışan bir cron var, ama sonuçta dakikada bir kez çalışacaktır. Bu cron potansiyel uzaktan bir XML dosyası kapmak fonksiyonları yüzlerce işlemek ve onu işlemek ve görevlerini yerine getirecektir. Sorun nedeniyle uzak sitelere hızına, bu komut bazen çalıştırmak için bir süre alabilir, olduğunu.

[A] komut dosyası zaman aşımına, [b] sunucusu aşırı yükleme [c] örtüşen ve tekrar çalıştırmadan önce o dakika boyunca görevini tamamladıktan değil (ki hata dışarı?) Olmadan bunu yapmak için güvenli bir yolu var mı

Ne yazık ki önbelleğe gerçek zamanlı yakın veri değişiklikleri gibi bir seçenek değildir ve çeşitli kaynaklardan değil.

3 Cevap

Ben hafif bir tasarım değişikliği bu süreci biraz fayda sağlayacağını düşünüyorum. Diğeri başladığında yavaş bir iş hala dosyalarını yazılı ise bir uzak sunucu zaman aşımına olabilir, ya da bir bağlantı yavaş olabilir göz önüne alındığında, kesinlikle eşzamanlılık sorunları içine edeceğiz.

Ben iki ayrı komut içine kıracak. Işlenmesi için bir tek son XML verilerini alma için kullanılan komut dosyası ve başka var. Getirmek komut dosyası gerekiyorsa işlemi komut dosyası sürekli işlemek için mevcut yeni dosya arar iken, tatlı zaman alabilir.

Bu şekilde bunlar bağımsız çalışabilir ve işlem komut dosyası her zaman son verilere, komut ya gerçekleştirmek için ne kadar sürer aldırmaksızın çalışabilirsiniz.

Bunu için bir iş parçacığı bir avuç var, bütün işleri tutmak bir yığın var:

  • Yığın kapalı bir işi Pop
  • Eğer (, vb ETAG'ları kontrol başlıklarını sona) xml dosyasını yenilemek gerek olmadığını kontrol edin
  • XML kapmak ihtiyaç olması halinde (bu nedenle konuları üzerinde yükü yaymak zaman alabilir bit) çok uzun sürerse, bu zaman aşımına gerektiğini ve aşağı bir site olabilir gibi tehlikeli, birine yaptım aslında yükseltmek rss jeneratör ya da her neyse.
  • o zaman işlem

Bu şekilde her zaman verileri çok kapmak mümkün olacak.

Bu size (bir dosya vb için son etag saklamak eğer yardımcı olacağını) hiç dosya kapmak gerek yok olabilir

Bir ucu, bunlardan herhangi geçerli bir formatta olmasını beklemeyin. En RSS okuma bir lanet iyi bir iş yok Mark Hacılar RSS RegExp okuyucu bir göz öneririz

Ekleme: Ben her dakika gerçekten sunucularına güzel oynuyor ve sunucu için işin bir sürü oluşturur değil aynı siteleri isabet söyleyebilirim, gerçekten sık sık vurmak gerekiyor?

Eğer onlar değiştirmeden önce gereksiz yere beslemeleri kapma değil emin olmak için kapma yemlerin <ttl> etiket okumak için emin olmalısınız. <ttl> güncelleme periyodunu tutar. Bir besleme varsa Yani <ttl>60</ttl> sonra sadece her 60 dakikada bir güncellenen olmalıdır.