2016-03-22 18 views
1

Saatlerce çalıştırılan zamanlanmış bazı görevlerin optimizasyonu ile görevlendirildim. Görevlerden biri, 1995'ten günümüze ait verilerle çalışır. İlk düşüncem (sorguları gözden geçirmenin yanı sıra), yıllarca bir cfloop yaratmak ve her yıl bir iş parçacığı başlatmaktı.Coldfusion kaynaklarını zamanlanmış görevler için en uygun duruma getirme

Bu iyi bir yaklaşım mı? İş yükünü böyle bir göreve bölmek için daha iyi bir yol var mı?

+0

İşlenmekte olan verileri yalnızca işin son çalıştırılmasından bu yana değiştirilmiş olanla sınırlamak için bir yol arayacağım. Daha sonra, işlerin ColdFusion'dan bir veritabanı planlanan işine aktarılıp aktarılamayacağını görecektim. –

cevap

2

Herhangi bir şeyi optimize etmeden önce neyin yavaş olduğunu anlamanız gerekiyor. Aksi takdirde, nispeten küçük kazançlar için çok fazla zaman harcama kodu geçirebilirsiniz. Veritabanları genellikle darboğazdır, ancak önce bunu bulmanız gerekir.

Basit bir düzeyde, hata ayıklamayı etkinleştirebilirsiniz (bir makinede) ve zamanın nerede harcanacağını görebilirsiniz. Size daha fazla fikir verecek Fusion Reactor gibi araçlar da vardır. Alternatif olarak, komut dosyasına bazı <cflog> çağrılarını ekleyebilir ve sonra yavaş blokları tanımlamak için bunları analiz edebilirsiniz. Hangi şekilde yapmaya karar verirseniz, çabalarınızın en iyi şekilde nerede geçirildiğini bilmeniz gerekir.

Diğer bazı düşünceler ....

  • veri değişimini mu?

zamanlanmış görevler esere her seferinde

  • CF sürümü seni Hangi yinelemek zorunda kalmamak sonra bir kez veri derlemek ve saklamak Değilse?

Dikkatli değilseniz, iş parçanız bitti demektir; bu, sunucunuz başka şeyler çalıştırıyorsa özellikle kötü olur. Ama evet, iplikler çözümünüzün bir parçası olabilir.

+0

CF10'deyim. Verilerin değişip değişmediğini kontrol etmeyi düşündüm, ne yazık ki veri tabanı iyi değil. Yapabileceğim en iyi şey, verilere bir last_changed sütunu eklemek için onu yöneten şirkete dilekçe vermek olabilir. –

+0

CF Standart sürümde kısıtlı sayıda dişli vardır. Bu sütunun eklenmesinin iyi bir fikir olacağını düşünün - iyi şanslar :) –

+0

@PatrickSchomburg - Evet, eklenen/değiştirilen verileri tanımlayabilmeniz gibi sesler * sadece * işlemi başka herhangi bir şeye göre iyileştirmek için daha fazlasını yapar. – Leigh

İlgili konular