سلام به همگی دوستان عزیز.
یک چالشی که باهاش تو پروژه برخوردیم اینه که ما میخوایم به مثلا 3000 تا کاربر اس ام اس یا ایمیل ارسال کنیم بعد اینارو میندازیم تو صف تا مثلا به سرور فشار زیادی نیاد و به خاطر دلایلی که خودتون احتمالا میدونید.اما به نظرتون این خیلی زمانبر نیست؟مثلا دو فردا دیگه بخوایم به 10000 تا کاربر ایمیل بزنیم این دو روز طول میکشه تنا همه ایمیل هارو بفرسته در حالیکه ما میخوایم مثلا تو یک بازه خاص ایمیل ها به دست کاربرامون رسیده باشن.اگه راه حل مناسبی دارید ممنون میشیم در اختیارمون قرار بدید.
با تشکر فراوان
میتونی تعداد worker ها رو بیشتر کنی مثلا 10 تا بزاری. یا اینکه یه سرویس جداگانه واسه ارسال ایمیل طراحی کنی (حالت میکروسرویس) و ارسال ایمیل ها رو به اون واگذار کنی.
@khanzadimahdi
ممنون از کمکت.فقط اینکه همه این ایمیل ها داخل یک صف هستند و اگه چنتا worker ران کنم واقعا رو سرعت تاثیر محسوسی داره؟ با سوپر وایزر باید این کارو انجام بدیم دیگه درسته؟
وقتی از چند تا وورکر استفاده کنید مثلا 10 تا ، همزمان 10 تا جاب با هم انجام میشه و خب یعنی زودتر این اتفاق می افته.
یه سوالی که ذهنم رو درگیر کرده اینه که برای چی طول کشیدن این مورد برای شما مهمه ؟ ببینید ارسال ایمیل ها هر کدوم اگر یک ثانیه طول بکشه ( که نمی کشه ) 3000 تا ایمیل توی 3000 ثانیه انجام میشه که میشه 50 دقیقه.
یعنی اون شکلی نیست که مثلا بخواید چند روز صبر کنید تا این ها بره که.
از اونجایی که PHP کدها رو به شکل synchronous اجرا میکنه
هدف اصلی در استفاده از صف اینه که کدهای ما یک جا اجرا نشند
و فشار روی سرور نباشه
حالا اگر میخواهی این روند سرعت پیدا کنه، یک راهش همون افزایش تعداد Worker هاست
که از طرف دیگه منابع سرور رو درگیر میکنه
اگر واقعا اولیت اجرای جاب ها بالاست
و سرعت اجراشون هم حائز اهمیته
پیشنهاد @khanzadimahdi بسیار مناسبه
یه سرویس بسازید که وظیفه اش تنها همین باشه
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟