PDA

View Full Version : راهنمایی در مورد ارسال ایمیل و زمان بندی



amirhossein.sh
دوشنبه 25 اردیبهشت 1396, 16:52 عصر
با عرض سلام خدمت دوستان
من یه سیستم خیلی ساده برای مزایده طراحی کردم که بعد از پیشنهاد جدید توسط کاربر به تمام کاربران یه ایمیل فرستاده میشه و بهشون از پیشنهاد جدیدی که ثبت شده خبر داده میشه .
مشکل اینجاست که بعد از این که تعداد کسایی که داخل سیستم پیشنهاد دادن بالا میره و در واقع تعداد آدرس ایمیل هایی که باید بهشون ایمیل ارسال بشه زیاد میشه بار گذاری صفحه بعد از زدن روی دکمه ارسال پیشنهاد طولانی میشه و کاربر با ارور timeout مواجه میشه ، میدونم که این مشکل به این دلیل هستش که من ایمیل هارو زمان بندی نمیکنم و کاربر باید منتظر بشینه تا تمام ایمیل ها ارسال بشه و این دلیل به وجود اومدن این timeout هست ، میخوام ببینم چه شکلی میتونم زمان بندی رو به ساده ترین شکل ممکن انجام بدم ! اگه میشه کامل توضیح بدین چون هیچ تجربه ای تو زمینه زمان بندی ندارم

trasilver
دوشنبه 25 اردیبهشت 1396, 17:42 عصر
درود. شما ایمیل هارو از سمت کلاینت بردارید و به سمت سرور ببرید.

وقتی کاربری توی مزایده پیشنهاد داد تعیین میکنید که ایمیل ها مثلا هر ایمیل در هر ثانیه ارسال بشه یا مثلا چند ایمیل در ثانیه ارسال بشه.

به عنوان مثال برای ارسال هر 5ایمیل در یک ثانیه از کد زیر استفاده کنید:


$i = 1;
$timestamp = time();

foreach ($emails as $email)
{
if ($i%5 == 0)
$timestamp += 1;

// insert email and text email to database

$i++;
}

بعدش یدونه فایل به اسم cronJob.php تولید میکنید و اطلاعاتی که اونجا وارد دیتابیس کردید و فیلدی که برابر timestamp قرار دادید با ایجاد یک کوئری و اضافه کردن
WHERE `timestamp` <= time() ایمیل هارو ارسال کنید