Defective Code Logo

Total Downloads Latest Stable Version Latest Stable Version

English | العربية | বাংলা | Bosanski | Deutsch | Español | Français | हिन्दी | Italiano | 日本語 | 한국어 | मराठी | Português | Русский | Kiswahili | தமிழ் | తెలుగు | Türkçe | اردو | Tiếng Việt | 中文

Laravel SQS Genişletilmiş

Giriş

Laravel SQS Genişletilmiş, AWS SQS yük boyut sınırlarını aşmak için tasarlanmış bir Laravel kuyruk sürücüsüdür. Bu kuyruk sürücüsü, büyük yükleri otomatik olarak bir diske (genellikle S3) serileştirir ve sonra çalışma zamanında serileştirilmiş verileri tekrar işler. Bu paket, https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-s3-messages.html adresinden ilham almıştır.

Basit SQS Genişletilmiş İstemciden Geçiş

  1. Projeden simplesoftwareio/simple-sqs-extended-client paketini kaldırın.
  2. defectivecode/laravel-sqs-extended paketini kurun.

Eski yapılandırma, yeni paket ile geriye dönük uyumludur. Tek değişiklik paket adıdır.

Kurulum

  1. Öncelikle, tüm büyük SQS yüklerinizi tutacak bir kova oluşturun.

SQS yüklerini depolarken özel bir kova kullanmanızı şiddetle tavsiye ederiz. Yükler hassas bilgiler içerebilir ve asla kamuya paylaşılmamalıdır.

  1. Kuyruk sürücüsünü kurmak için composer require defectivecode/laravel-sqs-extended komutunu çalıştırın.

  2. Ardından, queue.php dosyanıza şu varsayılan kuyruk ayarlarını ekleyin.

Laravel Vapor kullanıcıları bağlantı adını sqs olarak ayarlamalıdır. sqs bağlantısı, Vapor Core içinde aranır ve farklı bir bağlantı adı kullanıyorsanız bu kütüphane beklendiği gibi çalışmayacaktır.

/*
|--------------------------------------------------------------------------
| SQS Disk Kuyruk Yapılandırması
|--------------------------------------------------------------------------
|
| Burada SQS disk kuyruk sürücüsünü yapılandırabilirsiniz. Bu, yerleşik Laravel SQS kuyruk sürücüsündeki tüm
| yapılandırma seçeneklerini paylaşır. Tek eklenen seçenek `disk_options` olup, aşağıda açıklanmıştır.
|
| always_store: Tüm yüklerin kuyruk boyut limiti göz önünde bulundurulmadan bir diskte depolanıp depolanmayacağını belirler.
| cleanup: İş işlendiğinde yük dosyalarının diskten kaldırılıp kaldırılmayacağını belirler. Dosyaların arka planda
| bırakılması, hata ayıklama nedenleriyle daha sonra kuyruk işlerini tekrar oynamak için yararlı olabilir.
| disk: SQS yüklerinin kaydedileceği disk. Bu disk Laravel dosyalarınızda bulunan filesystems.php yapılandırma dosyasında
| yapılandırılmalıdır.
| max_size: Opsiyonel. Aşırı yükleme eşiğini sabit bir bayt sayısına sabitler. Atlandığında, eşik
| kuyruktan okunur. Aşağıda "Yük boyutu eşiği" kısmına bakın.
| prefix Yüklerin saklanacağı ön ek (klasör). Başka SQS kuyruklarıyla diski paylaşıyorsanız yararlıdır.
| Bir ön ek kullanmak, queue:clear komutunun dosyaları diğer sqs-disk destekli kuyruklardan
| ayrı olarak yok etmesine izin verir.
|
*/
'sqs' => [
'driver' => 'sqs-disk',
'key' => env('AWS_ACCESS_KEY_ID'),
'secret' => env('AWS_SECRET_ACCESS_KEY'),
'prefix' => env('SQS_PREFIX', 'https://sqs.us-east-1.amazonaws.com/your-account-id'),
'queue' => env('SQS_QUEUE', 'default'),
'suffix' => env('SQS_SUFFIX'),
'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
'after_commit' => false,
'disk_options' => [
'always_store' => false,
'cleanup' => false,
'disk' => env('SQS_DISK'),
'prefix' => 'bucket-prefix',
],
],
  1. Kuyruklarınızı başlatın ve SQS'nin yük limitinden endişe etmeden kazanç sağlamaya başlayın 🥳

Yük Boyutu Eşiği

AWS, maksimum SQS yükünü Ağustos 2025'te 256 KiB'den 1 MiB'ye yükseltti, ancak MaximumMessageSize bir kuyruk özelliğidir - o değişiklikten önce oluşturulan kuyruklar, eski 262144 bayt değerini korur. Herhangi bir sınıra varsayımlarda bulunmak yerine, bu paket özelliği kuyruktan okur ve gerçekten sığmayacak olanı yalnızca yükler.

Eşik, aşağıdaki sırayla çözülür ve ilk eşleşme kazanır. Bir yük, uzunluğu belirlenen eşikten büyük veya eşit olduğunda diske kaydedilir.

Koşul Eşik Kuyruk özelliğini okur
always_store true ise Her yük kaydedilir Hayır
max_size ayarlanmışsa Belirtilen değerdir Hayır
Kuyruk 262144 (2025 öncesi varsayılan) bildiriyorsa 250000 Evet
Kuyruk 1048576 (maksimuma yükseltilmiş) bildiriyorsa 1036432 Evet
Özellik okunamıyorsa 250000 Bir kez denendi

Rezerve edilen 12144 baytlık alan, mesaj başına ek yükü kapsar ve bir kuyruk, 262144 bayt varsayılanında bırakıldığında, bu paketin önceki sürümleri tarafından kullanılan 250000 baytlık eşiğe yanıt verir. Yükseltme, kuyruk kendi limitini artırmadıkça davranışı değiştirmez.

İzinler

Özelliği okumak için sqs:GetQueueAttributes gereklidir. Sonuç, her kuyruk için bellekte önbelleğe alınır, bu nedenle bu, işlem ömrü boyunca her kuyruk için bir çağrı maliyetinde olur; iş başına bir çağrı değildir.

Eğer özellik okunamazsa - dar bir IAM politikası veya bunu uygulamayan bir SQS emülatörü - sürücü 250000 baytlık eşik değeri ile geri döner ve işlemeye devam eder. İzni vermek istemiyorsanız max_size ayarlayarak aramayı tamamen atlayabilirsiniz.

Kuyruğun Limitini Yükseltme

aws sqs set-queue-attributes \
--queue-url https://sqs.us-east-1.amazonaws.com/your-account-id/your-queue \
--attributes MaximumMessageSize=1048576

SQS'nin kullanımını 64 KB parçalar halinde ölçtüğünü unutmayın, bu nedenle tek bir 1 MiB mesaj 16 istek olarak faturalandırılır. Büyük yükleri bir diskte depolamak genellikle daha ucuz bir yol olmaya devam eder.

Destek Kılavuzları

Açık kaynak paketimizi seçtiğiniz için teşekkürler! Lütfen bu destek kılavuzlarına bir göz atmak için biraz zaman ayırın. Bu kılavuzlar, projemizden en iyi şekilde yararlanmanıza yardımcı olacaktır.

Topluluk Tarafından Destek

Açık kaynak projemiz, harika topluluğumuz tarafından destekleniyor. Sorularınız varsa veya yardıma ihtiyacınız varsa, StackOverflow ve diğer çevrimiçi kaynaklar en iyi seçeneklerinizdir.

Hatalar ve Özellik Önceliklendirmesi

Açık kaynak projesini yönetmenin gerçeği, bildirilmiş olan her hata veya özellik talebini hemen ele alamayacağımızdır. Sorunları aşağıdaki sırayla önceliklendiriyoruz:

1. Ücretli Ürünlerimizi Etkileyen Hatalar

Ücretli ürünlerimizi etkileyen hatalar her zaman en yüksek önceliğimiz olacaktır. Bazı durumlarda, yalnızca bizim doğrudan etkilendiğimiz hataları ele alabiliriz.

2. Topluluk Çekme Talepleri

Bir hata tespit ettiyseniz ve bir çözümünüz varsa, lütfen bir çekme talebi gönderin. Ürünlerimizi etkileyen sorunlardan sonra, bu topluluk odaklı düzeltmelere en yüksek önceliği veriyoruz. İncelendikten ve onaylandıktan sonra, çözümünüzü birleştirecek ve katkınızı takdir edeceğiz.

3. Finansal Destek

Belirtilen kategorilerin dışındaki sorunlar için, çözümünü finanse etmeyi tercih edebilirsiniz. Her açık sorun, maddi katkıda bulunabileceğiniz bir sipariş formuna bağlıdır. Bu sorunları sağlanan finansman miktarına göre önceliklendiriyoruz.

Topluluk Katkıları

Açık kaynak, topluluğu aktif olduğunda gelişir. Hataları düzeltmiyor olsanız bile, kod iyileştirmeleri, belgeleri güncellemeler, öğreticiler aracılığıyla veya topluluk kanallarında başkalarına yardımcı olarak katkıda bulunmayı düşünün. Herkesi, bir topluluk olarak, açık kaynak çalışmalarını desteklemeye teşvik ediyoruz.

Tekrar belirtmek gerekirse, DefectiveCode, hataları nasıl etkilediklerine göre önceliklendirecektir; bu, ücretli ürünlerimize etkisi, topluluk çekme talepleri ve sorunlar için alınan finansal desteği içermektedir.

Lisans - MIT Lisansı

Telif Hakkı © Defective Code, LLC. Tüm hakları saklıdır

Bu yazılım ve ilgili belge dosyalarının (bundan böyle "Yazılım" olarak anılacaktır) bir kopyasını edinen herhangi bir kişiye, Yazılım'da kısıtlama olmaksızın işlem yapma izni verilmiştir; bu izin, Yazılım'ı kullanma, kopyalama, değiştirme, birleştirme, yayımlama, dağıtma, alt lisans verme ve/veya Yazılım'ın kopyalarını satma haklarını da içermektedir ve Yazılım'ın sağlandığı kişilerin bunu yapmasına izin verilmektedir; ancak, aşağıdaki koşullara tabi olacaktır:

Yukarıdaki telif hakkı bildirimi ve bu izin bildirimi, Yazılım'ın tüm kopyalarında veya önemli kısımlarında yer almalıdır.

YAZILIM "OLDUĞU GİBİ" SAĞLANMAKTADIR; HERHANGİ BİR TÜRDE, AÇIK YA DA ZIMNİ, SATILABİLİRLİK, BELİRLİ BİR AMACA UYGUNLUK VEYA HUKUKİ İHLAL GARANTİSİ DE DAHİL OLMAK ÜZERE HİÇBİR GARANTİ VERMEZ. YAZARLAR VEYA TELİF HAKKI SAHİPLERİ, YAZILIM’DAN veya YAZILIM'IN KULLANIMI veya DİĞER İŞLEMLERİNDEN KAYNAKLANAN HERHANGİ BİR TALEP, ZARAR VEYA DİĞER YÜKÜMDÜRLÜKLERDEN SORUMLU TUTULAMAZ; İSTER SÖZLEŞME TASARISI, SORUMLULUK, YA DA BAŞKA BİR ŞEKİLDE OLSUN.