Laravel Türkiye Discord Kanalı Forumda kod paylaşılırken dikkat edilmesi gerekenler!Birlikte proje geliştirmek ister misiniz?
  • Yardım
  • Queue veritabanına yazıyor fakat mail göndermiyor

Merhaba,

Queue kullanmak istiyorum. Bağlantı, Configuration doğru yapıyorum. Form üzerinden verileri veritabanına jobs'a kaydediyorum fakat sonrasında mail göndermiyor. Sebebi ne olabilir?

'database' => [
            'driver' => 'database',
            'table' => 'jobs',
            'queue' => 'default',
            'expire' => 60,
        ]
  • mgsmus bunu yanıtladı.
  • acs Bu konu o kadar gereksiz, o kadar saçma, o kadar zaman kaybı bir konu ki cevap yazıp yazıp siliyorum. Açık konuşayım, minimum bir VPS ya da cloud servis kullanamayacaksanız Laravel ile zaman kaybetmeyin. Kafanıza, zamanınıza yazık...

    acs Arka planda php artisan queue:work çalışıyor mu?

    • acs bunu yanıtladı.

      mgsmus Buna nasıl, nereden bakabilirim? Yani localde olsa bunu konsola yazıp çalıştırabiliriz sanırım ama sunucudayken nasıl yapabilirim? cPanel'den mi? Öyleyse bunu bir defa yapmam yeterli mi?

        acs Bunu bir kere yapmanız yeterli değil aynı zamanda sürekli çalıştığından da emin olmanız lazım. Bunun için önerilen yollardan biri de dokümanlarda da belirtildiği gibi Supervisor kullanmak. Kullandığınız Linux dağıtımına göre kurulumunu internette bulabilirsiniz:
        https://laravel.com/docs/8.x/queues#supervisor-configuration

        Sunucu yönetimi sizdeyse cPanel kurulu olması önemli değil, kurabilirsiniz ama paylaşımlı hosting kullanıyorsanız kuramazsınız doğal olarak ama yine de şurada alternatif bir şeyler anlatmışlar, deneyebilirsiniz:
        https://stackoverflow.com/questions/46141652/running-laravel-queuework-on-a-shared-hosting

          mgsmus Hocam selam tekrar,

          bunu bir sayfa üzerinden çalıştırmayı deniyorum. Sayfanın içeriği şöyle:

          function onStart(){
          
              \Artisan::call('queue:work');
          
          }

          aslında işe de yarıyor, bu sayfayı çalıştırınca kuyruktaki mailleri gönderiyor. Fakat bu sayfa bazen hiç cevap vermiyor. Bazen 503 veriyor.

          cPanel üzerinden de bir cron ekleyip bu işi otomatik hale getirdim fakat site bir süre sonra site erişimi gitti

          Bu doğru bir kullanım şekli mi? Yoksa sizce ne yapabilirim?

            • mgsmus

              Seviye 1379
            • Düzenlendi
            • En İyi Yanıtacs tarafından

            acs Bu konu o kadar gereksiz, o kadar saçma, o kadar zaman kaybı bir konu ki cevap yazıp yazıp siliyorum. Açık konuşayım, minimum bir VPS ya da cloud servis kullanamayacaksanız Laravel ile zaman kaybetmeyin. Kafanıza, zamanınıza yazık...

            • acs bunu yanıtladı.
              4 gün sonra

              mgsmus Öncelikle böyle bir tepki beklemiyordum.

              Yanıtınızı ilk okuduğumda bunu yapıcı mı yoksa yıkıcı bir eleştiri olarak mı almam gerekiyor karar veremedim. Ya da biraz fazla destek talebi açıp, sıktım mı diye düşündüm. Yazacağım cevaba da karar veremedim hemen açıkçası. Ardından şimdiye dek geçen sürede ise tekrar tekrar gelip yanıtınızı okudum.

              Geçen süre içerisinde sunucu fiyatları ve özellikleri hakkında araştırmalar yaptım. Dolar kurundan dolayı fiyatlar oldukça yüksek olmasına karşın sadece bunu almakla da bitmeyeceğini gördüm, cPanel filan derken uçuk fiyatlar oluyor. Sadece bir kuyruk özelliği için buna değer mi bilemedim. Bir de sunucu kullanmayı öğrenmek için zamana ihtiyaç olacak tabi. Aslında farklı planlarım olmasına rağmen bunu yaptım. Hem konuyu araştırdım hem de buna daha fazla vakit ayırmayı düşündüm.

              Birçok yazılımcı gibi ben de ilgili bölümler okumadım. Turizm, Radyo Tv filan okudum. Sonra bu alana ilgimden dolayı kendimi geliştirmek istedim. Şu anki bilgi ve tecrübeme de tamamen kendi araştırmalarım ve takip ettiğim online eğitimler ile geldim. Tabi sadece yazılım değil photoshop, illustrator, after effects gibi birçok programı da bu şekilde öğrendim. Sorun yaşadıkça ise bu tarz forumların desteği ile üstesinden gelerek birçok şey daha öğrenmeye devam ettim. Malum öğrenme sürecinde pek para kazanmak mümkün olmadığı için ise yazın turizmde çalışıp kışın yazılıma devam ettim. E tabi bir şeyler öğrendikçe öyle hemen müşterileriniz de olmuyor. Ama şükür zamanla turizmdeki bağlantılarımın da desteği ile zamanla referansa dayalı bir network oluşturdum. Belki ciddi bütçeler olmadı pek ama şükür bana yetecek kadar bir şeyler kazanıyorum hala.

              Bu alanda kendimi geliştirmeye karar verdikten sonra bugüne dek birçok proje geliştirdim. Sıfırdan tasarlayıp kodladığım birçok projenin yanı sıra wordpress gibi cmsler ile de projeler yaptım. Ayrıca afişler, video düzenlemeleri, logolar vb. yaptım. Daha önce duymama rağmen Laravel'i ise biraz geç keşfettim. Laravel temelli oluşturulan şu octobercms sayesinde biraz haşır neşir olduk. Baya kullanışlı olduğunu fark ettim, çok hoşuma gitti. Şu anki planlarım arasında ise laraveli daha iyi öğrenmek, daha etkin kullanmak ve react öğrenmek var.

              Şimdi bütün bunları niye anlattım?

              Evet hocam, yeni şeyler de öğreniyorum, buna ihtiyacım var. Hepimizin ihtiyacı var. Yeni bir şeyler öğrenmeye devam ederken yine bu alandan çalışıp para kazanıyorum. Açıkçası, yaptığım işi seviyorum. Yeni şeyler öğrenmeyi seviyorum. Kendimi geliştirmeyi seviyorum ve olur-olmaz güzel hedeflerim var. Gelecek vaat eden bilişim sektörüne memleketin gençlerini daha da teşvik etmek lazım bence. Belki zamanında sizden bir şeyler öğrenen birileri global projeler üretecek.

              Hal böyleyken;

              Eğer, online platformlar aracılığıyla öğrenmeye başladığım ilk şey laravel olsaydı bu önerinizi daha ciddiye alıp uygulayabilirdim. Yani ilerde severek yapacağım işten mesleğimden vazgeçebilirdim. Ya da belki yeni başlayan birine bunu önerdiğinizde kabul edecek ve öğrenmeyi bırakacak. Sizin öneriniz ile vazgeçecek yani. Tabi ki bunun sizi mutlu etmeyeceğini biliyorum ama hani "ne dilediğine dikkat et, gerçekleşebilir" diye ünlü bir söz vardır ya, bence siz de ne önerdiğinize dikkat edin gerçek olabilir. Hele ki böyle misyoner bir platformun forumunda...

              dipNot: Aslında bu cevabı hiç yazmayıp hiç olmamış gibi devam edebilir, belki bir süre sonra tekrar bir konu açıp destek talebinde bulunabilirdim. Ama şuna özen gösteriyorum hep, karşılaştığım sorun hakkında forumda bir çözüm önerilmediyse veya bulunmadıysa sorunu başka bir yerden ya da kendim çözdüğümde gelip yazmaya özen gösteriyorum ki başkaları aynı sorunu yaşarsa çözümü bulsun diye. Aynı bu düşünceyle başkalarına da bunu önermeyin diye yanıtlıyorum.

              dipNot2: Evet yanıtınızı yıkıcı eleştiri olarak aldım fakat, siz bu yanıtı yapıcı eleştiri olarak alın lütfen.

                minimum bir VPS ya da cloud servis kullanamayacaksanız Laravel ile zaman kaybetmeyin.

                Kısmından öğrenmeyi bırakmanızı kastettiğini düşünmüyorum. Benim bu cevaptan anladığım; Laravel özelliklerinin tamamını kullanabilmek için Vps veya cloud benzeri çözümlere ihtiyacınız var. Bunlar üzerinde çalışmayacaksanız doğal olarak tüm özelliklerini kullanamayacağınız bir framework yerine başka teknoloji / seçenek seçmenizin daha hızlı ve doğru olacağıdır.

                Açıkcası proc_open, worker çalıştırma vb konularda elinizde vps yoksa tıkanıp kalınabiliyor. Redis kullanmak veya horizon kurmak istediğinizde bile bazı gereksinimler karşılanmadığı için yapılamayabiliyor. Dolambaçlı yollardan illa çözümler bulunabiliyor fakat bir dispatch yazıp kuyruk işlemiyle ilgili tüm işlemi framework e bırakmanın rahatlığından/konforundan çıkıp cronjoblara girdiğinizde veya farklı işlemler yaptığınızda hem zaman kaybı yaşanıyor hemde saç-baş yolduracak hatalar ile karşılaşılabiliyor.

                acs Size verdiğim cevap ve bu cevap Laravel ile ticari faaliyet olarak ilgilenenler içindir, yani yaptığını satacak insanlar için. Eğer amaç sadece öğrenme ise zaten konu dışı, kendi bilgisayarınızda istediğinizi kurup uygulayabilirsiniz.

                Verdiğim cevaba gelince, "Parası olmayan okumasın kardeşim" gibi bir anlamda söylemedim. Yazılım, ortama hükmetmektir; ortam sizi sınırlıyorsa öğrenmenizi ve ilerlemenizi de sınırlayacaktır. Yazılım, donanım vs. bunlar sadece birer araç; amaç dediğimiz ortaya çıkarmak istediğiniz üründür ve asıl odaklanmanız gereken şey de odur. Siz şu an ürün yerine ortama odaklanmış durumdasınız ve ilerlemenize engel oluyor, çözümü ise çok üst düzey bir şey değil açıkçası. Bu iş için bazı gereksinimleri işinize odaklanmak için baştan sağlamanız gerekmekte.

                2 cpu, 4 gb ram, 60 gb ssd bir VPS, DirectAdmin lisansı ile yıllık yaklaşık 2000 TL. CMS tarzı işler yapıyorsanız rahatlıkla 20'den fazla işi kaldırır, Laravel'in her özelliğini kullanabildiğiniz gibi Redis, ElasticSearch, MongoDB, PostgreSQL, Varnish, RabbitMQ... gibi teknolojileri de kullanma şansınız olur, GIT ile otomatik deployment gerçekleştirebilirsiniz, dev->master merge sırasında sunucunun otomatik güncellenmesini sağlayabilirsiniz... ama anladığım kadarı ile tek seferlik olsa bile 2000 TL verebilecek durumda değilsiniz. O yüzden çözüm olarak şunu deneyebilirsiniz:

                $schedule->command('queue:work --once --stop-when-empty')
                    ->cron('* * * * * *')
                    ->withoutOverlapping();

                Belki yaşadığınız sıkıntıyı aşmanızı sağlar.

                Şu pakete de bir bakın, işinize yarar gibi duruyor:
                https://github.com/orobogenius/sansdaemon

                • acs bunu yanıtladı.
                • acs bunu beğendi.

                  mgsmus Verdiğiniz cevaptan derdimi anlatabildiğimi düşünüyorum. Öneriniz için de teşekkür ederim, deneyeceğim.