English | العربية | বাংলা | Bosanski | Deutsch | Español | Français | हिन्दी | Italiano | 日本語 | 한국어 | मराठी | Português | Русский | Kiswahili | தமிழ் | తెలుగు | Türkçe | اردو | Tiếng Việt | 中文
Laravel SQS Extended
مقدمة
Laravel SQS Extended هو سائق قائمة انتظار Laravel تم تصميمه للتعامل مع حدود حجم الحمولة في AWS SQS. يقوم هذا السائق تلقائيًا بتسلسل الأحمال الكبيرة إلى قرص (عادةً S3) ثم يقوم بإلغاء تسلسلها في وقت التشغيل. استلهمت هذه الحزمة من https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-s3-messages.html.
الهجرة من عميل SQS Extended البسيط
- قم بإزالة حزمة
simplesoftwareio/simple-sqs-extended-clientمن مشروعك. - قم بتثبيت حزمة
defectivecode/laravel-sqs-extended.
التكوين القديم متوافق مع الحزمة الجديدة. التغيير الوحيد هو اسم الحزمة.
التثبيت
- أولًا، قم بإنشاء دلو سيحتفظ بجميع أحمال SQS الكبيرة الخاصة بك.
نوصي بشدة باستخدام دلو خاص عند تخزين أحمال SQS. يمكن أن تحتوي الأحمال على معلومات حساسة ويجب عدم مشاركتها علنًا.
-
قم بتشغيل
composer require defectivecode/laravel-sqs-extendedلتثبيت سائق قائمة الانتظار. -
ثم، أضف إعدادات قائمة الانتظار الافتراضية التالية إلى ملف
queue.phpالخاص بك.
يجب على مستخدمي Laravel Vapor تعيين اسم الاتصال إلى
sqs. يتم البحث عن اتصالsqsداخل Vapor Core ولن تعمل هذه المكتبة كما هو متوقع إذا استخدمت اسم اتصال مختلف.
/*|--------------------------------------------------------------------------| تكوين قائمة انتظار قرص SQS|--------------------------------------------------------------------------|| هنا يمكنك تكوين سائق قائمة انتظار قرص SQS. يشارك جميع خيارات التكوين| من سائق قائمة انتظار SQS المدمج في Laravel. الخيار الوحيد المضاف هو| `disk_options` والذي سيتم شرحه أدناه.|| always_store: يحدد ما إذا كان ينبغي تخزين جميع الحمولة على قرص بغض النظر عن حد حجم القائمة.| cleanup: يحدد ما إذا كان ينبغي إزالة ملفات الحمولة من القرص بعد معالجة الوظيفة. ترك| الملفات خلف يمكن أن يكون مفيدًا لإعادة تشغيل وظائف القائمة لاحقًا لأسباب تصحيح الأخطاء.| disk: القرص لحفظ أحمال SQS عليه. يجب تكوين هذا القرص في ملف التكوين filesystems.php في Laravel.| max_size: اختياري. يثبّت عتبة التسليم إلى رقم ثابت من البايت. عند حذفه، تُقرأ العتبة من| القائمة نفسها. راجع "عتبة حجم الحمولة" أدناه.| prefix بادئة (مجلد) لتخزين الحمولة بها. هذا مفيد إذا كنت تشارك قرصًا مع قوائم SQS الأخرى.| استخدام بادئة يسمح لأمر queue:clear بتدمير الملفات بشكل منفصل عن قوائم السحب المدعومة الأخرى| التي تشارك نفس القرص.|*/'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', ],],
- قم بتشغيل قوائم الانتظار الخاصة بك واربح دون الحاجة للقلق بشأن حد حمولة SQS 🥳
عتبة حجم الحمولة
قامت AWS برفع الحد الأقصى لحمولة SQS من 256 KiB إلى 1 MiB في أغسطس 2025، لكن MaximumMessageSize هو سمة خاصة بكل قائمة انتظار — القوائم التي أنشئت قبل هذا التغيير تحتفظ بالقيمة القديمة 262144 بايت حتى تقوم برفعها. بدلاً من افتراض أي حد، تقرأ هذه الحزمة السمة من القائمة وتقوم بتسليم ما لا يتناسب حقًا.
يتم حل العتبة بالترتيب التالي، وأول تطابق يفوز. يتم تخزين الحمولة على القرص عندما يكون طولها أكبر من أو يساوي العتبة المحلولة.
| الشرط | العتبة | يقرأ سمة القائمة |
|---|---|---|
always_store هو true |
كل حمولة يتم تخزينها | لا |
تم تعيين max_size |
القيمة المكونة | لا |
القائمة تبلغ 262144 (القيمة الافتراضية قبل 2025) |
250000 | نعم |
القائمة تبلغ 1048576 (تم رفعها إلى الحد الأقصى) |
1036432 | نعم |
| لا يمكن قراءة السمة | 250000 | تم المحاولة مرة واحدة |
يغطى الارتفاع المحجوز البالغ 12144 بايت التكاليف الزائدة لكل رسالة، ويكون بحجم يجعل القائمة التي تُركت عند القيمة الافتراضية 262144 بايت تحل العتبة البالغة 250000 بايت المستخدمة في الإصدارات السابقة من هذه الحزمة. لا يتغير السلوك حتى تقوم برفع الحد الخاص بالقائمة.
الأذونات
يتطلب قراءة السمة sqs:GetQueueAttributes. يتم تخزين النتيجة في الذاكرة لكل قائمة، لذا فإن هذا يكلف مكالمة واحدة لكل قائمة خلال مدة العملية بدلاً من مكالمة واحدة لكل وظيفة.
إذا لم يكن بالإمكان قراءة السمة — سياسة IAM ضيقة، أو محاكي SQS لا ينفذها — يرجع السائق إلى عتبة 250000 بايت ويواصل الإرسال. قم بتعيين max_size لتجاوز البحث تمامًا إذا كنت تفضل عدم منح الإذن.
رفع حد قائمة الانتظار
aws sqs set-queue-attributes \ --queue-url https://sqs.us-east-1.amazonaws.com/your-account-id/your-queue \ --attributes MaximumMessageSize=1048576
لاحظ أن SQS يقيس الاستخدام في قطع بحجم 64 KB، لذا فإن رسالة واحدة بحجم 1 MiB تحتسب كـ 16 طلبًا. غالبًا ما يكون تخزين الأحمال الكبيرة على قرص هو المسار الأرخص.
ஆதரவு வழிகாட்டிகள்
எங்கள் திறந்த மூல தொகுப்பை தேர்ந்தெடுப்பதற்கு நன்றி! தயவுசெய்து இந்த ஆதரவு வழிகாட்டிகளை ஒரு நிமிடம் பார்ப்பதற்கு அனுக்கூலமாக இருக்கவும். இவை எங்கள் திட்டத்தில் அதிகतम முறையில் உதவுவன.
சமூகம் சிரம இடைமுகம்
எமது திறந்த மூல திட்டம் எமது அற்புதமான சமூகத்தால் ஆதரிக்கப்படுகின்றது. நீங்கள் கேள்விகள் அல்லது உதவிக்கு தேவைப்பட்டால், StackOverflow மற்றும் மற்ற ஆன்லைன் ஆதவாரங்கள் உங்கள் சிறந்த வாய்ப்புகள்.
பிழைகள் மற்றும் அம்ச முன்னுரிமை
ஒரு திறந்த மூல திட்டத்தை நிர்வகிக்கும் உண்மை, ஒவ்வொரு புகாரளிக்கப்பட்ட பிழையும் அல்லது அம்ச கோரிக்கையையும் உடனே தீர்க்க முடியாது. நாம் கேள்விகளை அடுத்தடுத்து தெரிவிக்கும் முறையில் முன்னுரிமை அளிக்கிறோம்:
1. எமது கட்டணம் முறைபடுத்திய தயாரிப்புகளை பாதிக்கும் பிழைகள்
எமது கட்டணம் மூலம் விற்பனை செய்யப்பட்ட தயாரிப்புகளை பாதிக்கும் பிழைகள் எப்போதும் எங்கள் மேற்பார்வை ஆகும். சில சந்தர்பங்களில், நாங்கள் நேரிடையாக எங்களுக்கு பாதிக்கும் பிழைகளை மட்டும் பரிசீலிக்கலாம்.
2. சமூகப் பூல் கோரிக்கைகள்
நீங்கள் ஒரு பிழையை அடையாளம் கண்டு அதை தீர்க்க ஒரு தீர்வு உருவாக்கினால், தயவுசெய்து ஒரு பூல் கோரிக்கையை சமர்ப்பிக்கவும். எமது தயாரிப்புகளை பாதிக்கும் கேள்விகளுக்கு பிறகு, நாங்கள் இந்த சமூக-வழி தீர்வுகளை அடுத்த மேலான முன்னுரிமை அளிக்கிறோம். மதிப்பீடு செய்யப்பட்டு ஒப்புதல் பெற்றவுடன், உங்கள் தீர்வை ஒருங்கிணைப்போம் மற்றும் உங்கள் பங்களிப்புக்கு credits அளிக்கிறோம்.
3. நிதி ஆதரவு
மேற்கொள்ளாத பிரச்சினைகள் வரையறுக்கப்பட்ட வகைகளுக்கு கவனமாக, நீங்கள் அதன் தீர்வுக்கு நிதி உதவியை தேர்வு செய்யலாம். ஒவ்வொரு திறந்த கேள்விக்கும் நீங்கள் நிதி உதவி செய்யலாம். நாங்கள் வழங்கப்பட்ட நிதி அளவூடங்கை அடிப்படையாகக் கொண்டு இந்த பிரச்சினைகளை முன்னுரிமையளிக்கிறோம்.
சமுதாய பங்களிப்புகள்
திறந்த மூல செயல்திறனான பேனையில் அதன் சமுதாயம் செயலில் இருக்க wanneerானபோது வளமாகிறது. நீங்கள் பிழைகளை சரிசெய்யவில்லை எனினும், குறியீட்டு மேம்பாடுகள், ஆவணங்களில் புதுப்பிப்புகள், பயிற்சிகள் அல்லது சமுதாயச் चैनல்களில் மற்றவர்களை ஆதரவளிக்க உதவுவதன் மூலம் பங்களிப்பை சார்ந்துகொள்ள உங்கள் எண்ணங்களை மதியுங்கள். ஐந்தில் நாங்கள் அனைவரையும், சமூகமாக, திறந்த மூல வேலைக்கு அனைத்து அளவிதான் ஆதரிக்கச் சேற்படுத்துகிறோம்.
மீளவேண்டும் என்றால், DefectiveCode எமது கட்டணம் முறையூடான தயாரிப்புகளை பாதிக்கும் பிழைகள், சமூகப் பூல் கோரிக்கைகள் மற்றும் அந்த பிரச்சினைகளுக்கு பெறப்பட்ட நிதி ஆதரவுக்கே முன்பீற்ற அளிக்கும்.
உரிமம் - MIT உரிமம்
காப்புரிமை © Defective Code, LLC. அனைத்து உரிமைகளும் பாதுகாக்கப்பட்டவை
இந்த மென்பொருளுக்கும் அதற்கு உடைய ஆவணக் கோப்புகளுக்கும் (இது "மென்பொருள்") ஒரு நகலைப் பெறும் எந்த நபர்க்கும், கட்டுக்கோப்புகள் இல்லாமல், மென்பொருளில் முகாமை செய்ய அனுமதிக்கப்படுகிறது, இதில் செயல்பாட்டின் உரிமைகள், நகலெடுக்கவும், மாற்றவும், இணைக்கவும், வெளியிடவும், பகிர்வு உரிமம் வழங்கவும் மற்றும்/அல்லது மென்பொருளின் நகல்களை விற்கவும், மற்றும் மென்பொருளின் நகல்களைப் பெறும் நபர்களுக்கு இதைப் செய்ய அனுமதிக்கவும், கீழ்க்காணும் நிலைகளை பின்பற்றுவதற்குப் பண்படுத்தப்படுகிறது:
மேலே குறிப்பிடப்பட்ட காப்புரிமை அறிவிப்பு மற்றும் இந்த அனுமதி அறிவிப்பு அனைத்துப் பிரதிகள் அல்லது முக்கியப் பகுதிகளிலும் உள்ளடக்கப்பட வேண்டும்.
மென்பொருள் "தொலைவிலிருந்து" வழங்கப்படுகிறது, எந்தப் பாலம்ஸ், நடைமுறைகளிலும் ஏதாவது வாக்குறுதி அல்லது குறிப்பிடப்பட்டுள்ளது, ஆனால் வரம்பற்ற வகையில் விற்பனைதிறன், குறிப்பிட்ட ஒரு நோக்கத்திற்கான வசதி மற்றும் உரிமை மீறல் ஆகியவற்றுக்கான வாக்குறுதிகள். எந்த சந்தர்ப்பத்திலும் ஆசிரியர்கள் அல்லது காப்புரிமையாளர்கள் எந்த உரிமையைக் கொண்டாட முடியாது, எந்தக் குற்றத்தை, சேதப்படுத்தல்களை அல்லது பிற பொறுப்புகளை அட/thread-modal/ம், ஒப்பந்தத்தின் ஒரு நடவடிக்கையின்படி, ஆபத்து அல்லது வேறென்னவாக இருந்தாலும், மென்பொருள் அல்லது மென்பொருளைப் பயன்படுத்துவதில் இருந்ததாகவும் உள்ள தேவை/request-modal/ியைக் கொண்டாட முடியாது.