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 ایکسٹینڈڈ کلائنٹ سے ہجرت
- اپنے پروجیکٹ سے
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 ڈسک صف کے ڈرائیور کو ترتیب دے سکتے ہیں۔ یہ تمام ایک جیسی| ترتیبات Laravel SQS صف کے ساتھ شیئر کرتا ہے۔ صرف شامل کی گئی| آپشن `disk_options` ہے جس کی وضاحت ذیل میں کی گئی ہے۔|| always_store: طے کرتا ہے کہ کیا تمام بوجھوں کو صف کی سائز کی حد سے قطع نظر ڈسک پر محفوظ کیا جانا چاہیے۔| cleanup: طے کرتا ہے کہ کیا بوجھ کی متاثرہ فائلیں کام کی پروسیسنگ کے بعد ڈسک سے ہٹا دی جائیں۔| فائلوں کو پیچھے چھوڑنا debugging وجوہات کے لیے صف کے کاموں کو دوبارہ چلانے کے لیے مفید ہوسکتا ہے۔| disk: SQS بوجھ کو محفوظ کرنے کے لیے ڈسک۔ یہ ڈسک آپ کی Laravel filesystems.php کنفیگ فائل میں ترتیب دی جانی چاہیے۔| max_size: اختیاری۔ آفلڈ حد کو طے شدہ بائٹس کے ایک مقررہ نمبر پر پن کرتا ہے۔ اگر یہ چھوڑ دیا جائے تو، حد| صف سے پڑھی جاتی ہے۔ نیچے "Payload size threshold" دیکھیں۔| prefix بوجھوں کو ذخیرہ کرنے کے لیے پیش لفظ (فولڈر)۔ یہ مفید ہے اگر آپ دوسرے SQS قطاروں کے ساتھ ایک ڈسک کا اشتراک کر رہے ہیں۔| ایک پیش لفظ استعمال کرنے سے queue:clear کمانڈ کو دوسرے sqs-disk سے منسلک قطاروں سے فائلوں کو الگ الگ تباہ کرنے کی اجازت ملتی ہے| جو ایک ہی ڈسک کا اشتراک کرتی ہیں۔|*/'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 نے ستمبر 2025 میں SQS کی زیادہ سے زیادہ بوجھ کی حد کو 256 KiB سے 1 MiB تک بڑھا دیا، لیکن 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. کمیونٹی کی طرف سے پول ریگسٹس
اگر آپ نے کسی کیڑے کی نشاندہی کی ہے اور آپ کے پاس حل ہے، تو براہ کرم پول ریگسٹس جمع کرائیں۔ اپنی مصنوعات سے متعلق مسائل کے بعد، ہم ان کمیونٹی کی بنیاد پر درستگیوں کو اگلی سب سے بڑی ترجیح دیتے ہیں۔ جائزہ لینے اور منظور ہونے کے بعد، ہم آپ کے حل کو ضم کریں گے اور آپ کی شراکت کو تسلیم کریں گے۔
3. مالی مدد
ذکر کردہ زمرے سے باہر کے مسائل کے لیے، آپ ان کا حل کرنے کے لئے مالی امداد فراہم کرنے کا انتخاب کر سکتے ہیں۔ ہر اوپن مسئلہ ایک آرڈر فارم سے منسلک ہے جہاں آپ مالی طور پر تعاون کر سکتے ہیں۔ ہم ان مسائل کو فراہم کردہ فنڈنگ کی رقم کی بنیاد پر ترجیح دیتے ہیں۔
کمیونٹی کی شراکتیں
اوپن سورس اس وقت بڑھتا ہے جب اس کی کمیونٹی فعال ہو۔ چاہے آپ کیڑے حل نہیں کر رہے ہوں، کوڈ کی بہتریوں، دستاویز کے اپ ڈیٹس، سبقیں، یا کمیونٹی چینلز میں دوسروں کی مدد کے ذریعے شراکت دینے پر غور کریں۔ ہم بالعموم سب کو، ایک کمیونٹی کے طور پر، اوپن سورس کام کی مدد کرنے کی ترغیب دیتے ہیں۔
دوہرانے کے لیے، DefectiveCode کیڑے کو اس بنیاد پر ترجیح دے گا کہ وہ ہمارے ادائیگی شدہ پروڈکٹس، کمیونٹی کی پول ریگسٹس اور مسائل کے لئے موصولہ مالی مدد پر کس طرح اثر انداز ہوتے ہیں۔
لائسنس - MIT لائسنس
کاپی رائٹ © Defective Code, LLC. تمام حقوق محفوظ ہیں
یہاں پر کسی بھی شخص کو یہ سافٹ ویئر اور اس سے وابستہ دستاویزات کی کاپی حاصل کرنے کی اجازت دی جاتی ہے (جسے "سافٹ ویئر" کہا جاتا ہے)، تاکہ وہ سافٹ ویئر میں کسی بھی پابندی کے بغیر کام کر سکے، بشمول بغیر کسی حد کے، استعمال کرنے، کاپی کرنے، ترمیم کرنے، یکجا کرنے، شائع کرنے، تقسیم کرنے، ذیلی لائسنس دینے اور/یا سافٹ ویئر کی کاپیوں کو بیچنے کے حقوق حاصل کرنے، اور ان لوگوں کو اجازت دینے کا کہ جنہیں سافٹ ویئر فراہم کیا گیا ہے، کہ وہ ایسا کرسکیں، مندرجہ ذیل شرائط کے تابع:
اوپر کا کاپی رائٹ نوٹس اور یہ اجازت نامہ سافٹ ویئر کی تمام کاپیوں یا اہم حصوں میں شامل کیا جائے گا۔
یہ سافٹ ویئر "جیسا ہے" فراہم کیا جاتا ہے، بغیر کسی قسم کی وارنٹی، واضح یا مضمر، بشمول لیکن محدود نہیں، مارکیٹ ایبیلٹی، کسی خاص مقصد کے لئے موزونیت اور خلاف ورزی کے وارنٹیوں کے۔ کسی بھی صورت میں مصنفین یا کاپی رائٹ ہولڈرز کسی بھی دعوے، نقصانات یا دیگر ذمہ داریوں کے لئے ذمہ دار نہیں ہوں گے، چاہے وہ معاہدے کے ایکشن، غلطی یا کسی اور طریقے سے ہو، جو سافٹ ویئر یا سافٹ ویئر کے استعمال یا دیگر معاملات سے پیدا ہو، یا اس سے متعلق ہو۔