Poezdda chop etilgan postlarni 3 blogda nashr qilishni rejalashtirish

Men ("Rails 3.1") veb-saytni ishlab chiqyapman, chunki "yozuvchilar" cheklangan to'plami post yozishga qodir. "Moderatorlar" postni qabul qilishi (yoki rad etishi) va nashrni rejalashtirishi kerak. Ushbu vaqtgacha rivojlanish jarayoni juda muhim.

Har kuni ikki marta nashr etiladigan an'analar mavjud. Qabul qilingan xabarlar bir qator navbatga qo'yiladi. Har kuni soat 10:00 va 16:00 da eng qadimgi maqola e'lon qilinishi kerak. Biroq, , shuningdek, xabarni jonli ravishda belgilash uchun ** qo'l bilan belgilanishi kerak.

Natijani qo'lga kiritishning eng yaxshi yo'li nima? Cron? Fon ishi?

0

1 javoblar

Shunday qilib ...

1) siz ham qo'lda o'rnatishingiz mumkin bo'lgan accepted_at maydoniga ega bo'lishingiz kerak; bu "jonli yashash vaqti".

2)

class Post
  scope :ready_to_be_published, lambda{ where(['accepted_at<? and not published', Time.zone.now]).order('accepted_at ASC') }

  def accept!(time_to_go_live = nil)
    update_attributes!(:accepted_at => time_to_go_live || Time.zone.now)
  end
end

3) soat 10 da va 4 minutda qachon bo'lsa ishini bajarish kerak

task :publish_a_post => :environment do
  Post.ready_to_be_published.first.update_attributes!(:published => true)
end
1
qo'shib qo'ydi
Yoki alohida kod accepted_at va go_live_at bo'lishi mumkin, shuning uchun haqiqiy qabul qilish vaqti ham saqlanadi.
qo'shib qo'ydi muallif Leonid Shevtsov, manba
Voha! Rahmat! Agar ular sodda bo'lsa, ba'zi narsalar eng yaxshisidir.
qo'shib qo'ydi muallif Ivan, manba