[英]How to have a priority queue in Rails that sends jobs to several NodeJS servers?
[英]How to assign priorities (a kind of priority queue) in Rails?
假設我有一張名為power-ups的表(我將以游戲為例)。
我需要根據用戶的“優先級”為用戶分配電源。
因此,當用戶第一次登錄時,他獲得最低功耗(優先級為0的功能)。 當用戶通過一個級別時,他將獲得下一級別的上電(優先級為1)。
最直接的方法是使用一個名為Priority的字段,可以在admin表中手動分配給0,1,2 ....並且將按順序給出加電。
我想到的是偽代碼,希望它有所幫助:
if (level == 0)
find power_up where priority == 0
else if (level == 1)
find power_up where priority == 1
..................
有更簡單的方法嗎?
如果你想要的只是一個簡單的用戶級別,普通的整數屬性就可以完成這項工作。
我想你試圖在這里描述某種狀態機功能。
檢查aasm gem
你可以有這樣的東西:
class User
include AASM
aasm do
state :first_state, :initial => true
state :second_state
state :third_state
...
state :final_state
event :first_blood do
transitions :from => :first_state, :to => :second_state
end
end
end
用它來做你喜歡的事情
user.first_blood
這會將用戶提升到second_state
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.