Merhaba,
Elimde 1000 tane cron job linki ve bunlarin dakikada 1 topluca paralel olarak calismasi lazim. Serverim dedicated 64gbram o yuzden kaldirabilicegini dusunuyorum. Nasil yapabilirim boyle bir seyi?
Cron job dongusu
6
●104
- 27-09-2020, 16:50:49Merhabalar; Queue kullanmalısınız. Cronlar sadece queue'ya işleri atmalı ve kuyruktan çalışmalı. Apache Kafka kurup yapılandırabilirseniz altından kalkabilirsiniz.
- 27-09-2020, 17:17:42hocam redis, memcached le nasıl yapabilirim?mesela 1000linki tek cron komutuyla çalıştırabilirmiym?DestekHostingVMH adlı üyeden alıntı: mesajı görüntüle
- 27-09-2020, 17:38:17Bakın burada elinizdeki 1000 tane corn job'ın ne iş yaptığı, ne kadar sürede yaptığını bilmiyorum. 1000 tane process aynı anda çalıştıracaksınız. Bu çok doğru bir iş değil. Bunları dediğiniz gibi tek bir cronda sıralı bile yapsanız ki buda tek process te yapmak demek oluyor buda doğru değil, toplam da 5 dakika da bittiğini varsayalım yani küçük işler olduğunu düşünelim. Her bir iş için ram de kaplanan yerinde düşük olduğunu varsayalım. Toplamda 5 dakika da biterse ve siz her dakika aynı işi tekrar tetiklerseniz hangi işlemci olursa olsun eninde sonunda bunu yapamaz hale gelecektir. Programlama mantığı olarakta yanlış bir yaklaşım. Burada yapılacak tek şey dediğim gibi queue'ya iş bırakmanız ve birden fazla consumer la bunu dinlemeniz. Kaç consumer ayağa kaldıracağınız da elinizdeki işlemlerin süresine göre optimize edersiniz. Gerekirse aynı queue yu başka makinelere de dinletebilirsiniz. Redis ya da Memcache bir işinize yaramaz en fazla veriyi Ram'e yazmış olursunuz. Queue yu da Ram' e yazacaksınız büyük ihtimalle zaten. Diske de yazabilirsiniz orası alabileceğiniz risk e göre size kalmış.manas23 adlı üyeden alıntı: mesajı görüntüle
- 27-09-2020, 17:40:481 dakikada 1000 işlemin biteceğine inanıyorsanızda PThread class ları var PHP de onları inceleyebilirsiniz. PHP thread based bir dil olmadığı için multi threading yapamaz ama bu classlarla multi process olarak çalıştırabilirsiniz.
- 27-09-2020, 17:43:09DestekHostingVMH adlı üyeden alıntı: mesajı görüntülehocam sizin dediğiniz gibi queue ya alarak 5 dakika bir çalışmasını nasıl sağlayabilirim? hiç anlamam server işlerinden, serverıda patlatmak istemiyorum.DestekHostingVMH adlı üyeden alıntı: mesajı görüntüle
- 27-09-2020, 17:46:42Serverla bir ilgisi yok bunun. Sizin için Apache Kafka configurasyonu zor olacaktır. Öncelikle RabbitMQ ile bir deneyin. Bu burada birkaç mesajla anlatabileceğim kadar kısa bir konu değil. php-amqp extension kurmanız gerekiyor sunucu tarafında. Daha sonra composer dan bir RabbitMQ library si ekleyip onun dökümanından ilerleyebilirsiniz. RabbitMQ ile ilgili de araştırma yaparsanız konuya hakim olabilirsiniz.