اجرای یک job در زمان تعیین شده

3 سال پیش توسط محمد رزاقی مطرح شد
آفلاین
user-avatar
محمد رزاقی ( 199 تجربه )
3 سال پیش

لینک کوتاه اشتراک گذاری

0

سلام
یه سوالی داشتم
کسی تجربه ای داره برای انجام یک job در یک صف در یک زمان مشخص
برای مثال امروز می خوایم یه دستوری رو بذاریم تو صف که فردا ساعت 10 صبح اجرا بشه(مثلا ارسال ایمیل انبوه)
دوباره فردا یه ارسال ایمیل انبوه دیگه داریم که میخوایم بذاریمش تو صف تا مثلا روز جمعه ساعت 13:45 اجرا بشه
بنظرتون چیکار میشه کرد؟

آفلاین
user-avatar
vahid Mohammadi ( 37202 تجربه )
3 سال پیش

لینک کوتاه اشتراک گذاری

2

@1razzaghi

سلام اگر فقط مساله شما زمانبندی ارسال ایمیل هست لازم نیست Job تعریف کنید خود تابع Mail به شما امکان ایجاد تاخیر در زمان ارسال ایمیل میده و می تونید به شکل زیر عمل کنید.

$when = now()->addMinutes(10);

Mail::to($request->user())
    ->cc($moreUsers)
    ->bcc($evenMoreUsers)
    ->later($when, new OrderShipped($order));
آفلاین
user-avatar
محمد رزاقی ( 199 تجربه )
3 سال پیش

لینک کوتاه اشتراک گذاری

0

سلام
ممنون از پاسختون
ولی منظور من برای میل یک مثال بود
فرض کنید job های سنگین 1000 تایی و 2000 تایی از مدل های مختلف داریم
مثلا فرض کنید تو یه پنل پیامکی کاربر درخواست ارسال پیامک میده امشب که فردا صبح ساعت 11 پیامک هاش ارسال شه
حالا ممکنه متن پیامکش رو شما ساعت 10 امشب تایید کنی ولی ارسالش تو زمانیه که اون میخواد
اصلا منظورم ایمیل و پیامک نیست
دنبال یه سولوشن هستم برای اینکار که به صورت داینامیک صف هایی در سرور ایجاد بشه و به صورت داینامیک هم مدیریت بشن صف ها

آفلاین
user-avatar
محمد رزاقی ( 199 تجربه )
3 سال پیش

لینک کوتاه اشتراک گذاری

0

سلام
یه راهی پیدا کردم
حالا نمیدونم درسته یا یه جوری کلک رشتی می شه!
اگر به تابع delay تاریخ مثلا فردا رو بفرستیم تو جدول jobs فیلد available_at رو میذاره برای تاریخی که ما به delay دادیم و تا job به زمان دسترس شدنش نرسه اجرا نمیشه
حالا نمی دونم اینکار درست هست یا نه؟ که اینقدر worker رو معطل گذاشت
هزینه اجرای کارمون رو بالا نمیبره؟

برای ارسال پاسخ لازم است، ابتدا وارد سایت شوید.