مهدی
4 سال پیش توسط مهدی مطرح شد
6 پاسخ

انتشار اتوماتیک پست در زمان تعیین شده

سلام
من یک وبسایت مدیریت محتوا با لاراول دارم که از طریق وبسایت کاربر میتونه مطالبی رو ایجاد کنه و بنویسه، حالا مثل وردپرس میخوام قابلیتی به این سیستم اضافه کنم که بتونم به سیستم دستور بدم در فلان زمان خاص پست رو انتشار بده (یعنی یه فیلد در دیتابیس رو آپدیت کن)

ایده خودم اینه:
بیام و یه جدول بسازم که فیلد های زیر رو داره
id
postid
when - فیلد از جنس datetime
status - فیلد از جنس boolean
updatedat

کار این جدول اینه وقتی که دارم پست رو منتشر میکنم اگر فیلد زمان بندی رو انتخاب کنم، اول پست، تو جدول خودش save بشه و آیدیش بدست بیاد بعد اطلاعات لازم به جدول فوق هم اضافه بشه
و با یه schedule بیام و هی چک کنم که اگه این جدول حاوی رکوردی بود که status اون 0 هست بیاد و فیلد when رو بگیره با زمان فعلی مقایسه کنه اگر کمتر یا مساوی بود بعد از پیدا کردن post با آیدی که داره وضعیت (status) پست مربوطه رو آپدیت کنه (پست رو انتشار بده)

حالا آیا شما راهکار بهتری به ذهنتون میرسه؟ یا اینکه ایده ای برای بهبود این راهکار دارید؟


ثبت پرسش جدید
محمدحسن یگانه
تخصص : Full-Stack Web Developer Freel...
@mhyeganeh 4 سال پیش آپدیت شد
4

@mrmmg
به نظرم میاد خیلی روش پیچیده و دشواری رو انتخاب کردید و اصلا نیازی به این کارها نیست. کل قضیه با یک ستون اضافه کردن به جدول پست هاتون حل میشه مثلا با عنوان published_at که از جنس datetime هست. اضافه کردن یک جدول جدید و job و scheduling و این داستان ها برای چنین قضیه ای چندان منطقی شاید نباشه واقعا. خود وردپرس هم تا جایی که خاطرم هست از همین روش استفاده میکنه.

اگر اپراتور انتشار فوری رو انتخاب کرد که زمان فعلی رو در این فیلد قرار میدید و اگر انتشار زمان بندی شده رو انتخاب کرد تاریخ و ساعت رو ازش میگیرید و می‌ریزید داخل این فیلد.

برای نمایش به مخاطبان عمومی سایت هم با یک دستور where در query builder تون اون هایی که هنوز زمان انتشارشون نرسیده رو فیلتر میکنید و الباقی رو نمایش میدید. همین 🙂🙄

لازم به ذکر هست که بنده خودم به شخصه مدت زیادی هست که از همین سیستمی که عرض کردم برای اکثر پروژه هام استفاده میکنم و همه چیز خیلی عالیه.


حسین شیری نژاد
تخصص : programmer
@hosseinshirinegad98 4 سال پیش مطرح شد
1

با سلام، همون کرون جاب لاراول به نظرم من رسید و من باشم فعلا از همین روش استفاده میکنم راه دیگه ای به ذهنم نمیرسه. اجرای خودکار فرامین در لاراول با کرون جاب


saman
@saman1111 4 سال پیش مطرح شد
1

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


coarad supp
تخصص : برنامه نویس لاراول
@coaradsupp 4 سال پیش مطرح شد
1

سلام
میتونید از جاب استفاده کنید ، یه جاب بنویسید و بگید فلان تاریخ این پست رو وضعیتش رو تغییر بده


مهدی
تخصص : برنامه نویس و طراح وب
@mrmmg 4 سال پیش مطرح شد
0

@coaradsupp
ممنونم
حالا شیوه پیاده سازیش چندان مهم نیست مهم اینه که اون جدول مذکور مهمه یا نه
ولی خب با جاب هم میشه و نظر شما صحیحه
دوست دارم نظرتون رو راجع به اون جدوله بدونم...


coarad supp
تخصص : برنامه نویس لاراول
@coaradsupp 4 سال پیش مطرح شد
1

خوب به نظرم اضافه کاریه، چون وقتی شما داری یه پستی منتشر میکنی، فقط میخوای یه تغییر وضغیت توش بدی، با جاب همین کار شما انجام میشه، ولی دیگه به قول خودتون هی چک کردن نداره، خود سیستم میدونه در چه زمان مشخصی این پست رو تغییر وضعیت بده، پیچیدگی انچنانی هم نداره و نیاز به جدول هم نداره


محمدحسن یگانه
تخصص : Full-Stack Web Developer Freel...
@mhyeganeh 4 سال پیش آپدیت شد
4

@mrmmg
به نظرم میاد خیلی روش پیچیده و دشواری رو انتخاب کردید و اصلا نیازی به این کارها نیست. کل قضیه با یک ستون اضافه کردن به جدول پست هاتون حل میشه مثلا با عنوان published_at که از جنس datetime هست. اضافه کردن یک جدول جدید و job و scheduling و این داستان ها برای چنین قضیه ای چندان منطقی شاید نباشه واقعا. خود وردپرس هم تا جایی که خاطرم هست از همین روش استفاده میکنه.

اگر اپراتور انتشار فوری رو انتخاب کرد که زمان فعلی رو در این فیلد قرار میدید و اگر انتشار زمان بندی شده رو انتخاب کرد تاریخ و ساعت رو ازش میگیرید و می‌ریزید داخل این فیلد.

برای نمایش به مخاطبان عمومی سایت هم با یک دستور where در query builder تون اون هایی که هنوز زمان انتشارشون نرسیده رو فیلتر میکنید و الباقی رو نمایش میدید. همین 🙂🙄

لازم به ذکر هست که بنده خودم به شخصه مدت زیادی هست که از همین سیستمی که عرض کردم برای اکثر پروژه هام استفاده میکنم و همه چیز خیلی عالیه.


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام