راکت
حل شده

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

6 پاسخ

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

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

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

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

مهدی
مهدی
@mrmmg
ثبت پرسش جدید

پاسخ‌ها

6
محمدحسن یگانه
محمدحسن یگانه
@mhyeganeh

تخصص: Full-Stack Web Developer Freelancer

بهترین پاسخ

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

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

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

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

حسین شیری نژاد
حسین شیری نژاد
@hosseinshirinegad98

تخصص: programmer

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

saman
saman
@saman1111

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

شاید پاسخ شما همین‌جا باشد

coarad supp
coarad supp
@coaradsupp

تخصص: برنامه نویس لاراول

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

مهدی
مهدی
@mrmmg

تخصص: برنامه نویس و طراح وب

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

coarad supp
coarad supp
@coaradsupp

تخصص: برنامه نویس لاراول

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

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

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