Narazie nic nie potrafię powiedziec ponieważ serwis jeszcze nie ruszył, chyba trzeba będzie wtedy wrócić do tematu Na początku pewnie wystartuje na vpsie M lub L http://www.megiteam.pl/oferta/serwery-vps potem się zobaczy.
Właśnie tak mi coś ten delayed job tutaj nie pasował.
Witam,
użyłem ostatnio redis’a do zliczania wyświetleń danej akcji w moim przypadku akcji show, wszystko działa ale mam pytanie jak zrobić taką zmienną nie przetrzymywaną w bazie ktora zlicza mi wyświetlenie danej akcj ale dla każdego obiektu z osobna nie tak jak teraz zlicza wszystko wspólnie:
model Video
def self.current
$redis.get("current_hits").to_i
end
def self.increment
$redis.incr('current_hits')
end
controller Video akcja show
@video = Video.find(params[:id])
Video.increment
repond_to do |format|
format.html
format.xml { render :xml => @video }
end
end
No i widok show:
<%= Video.current %>
Po prostu powiąż wpis w redisie z konkretnym video za pomocą jego id i ustaw odpowiednie gettery i settery (podobnie jak w twoim przykładzie tylko bez self na początku)
Wtedy w controlerze @video.increment i w widoku @video.current
Ok już rozwiązałem ten problem
Przy tworzeniu każdego obiektu video tworzę z osoba zmienną w redisie czyli w akcji create:
$redis.set "video_hits_#{@video.id}
w akcji show
$redis.incr "video_hits_#{@video.id}
No a w widoku:
<%= $redis["video_hits_#{@video.id}"]
Czy da się uruchomić redisa na ubuntu jako daemona ?
[quote=wlodi]No a w widoku:
<%= $redis["video_hits_#{@video.id}"]
[/quote]
widok nie powinien być odpowiedzialny za pobieranie danych z redisa. Zrób do tego odpowiednią metodę w modelu
Tak zrobiłem, tutaj podalem przyklad na szybko Mimo to mam jeszcze pytanie jak zabezpieczyć się przed komunikatem:
Connection refused - Unable to connect to Redis on localhost:6379
jak sprawdzić w modelu czy jest nawiązane połączenie z redisem? Czy jest taka możliwość?
Można tak.
def
redis.ping
rescue Errno::ECONNREFUSED
false
end
a tu masz jak uruchamiać redisa jako deamona:
Ok dzięki, wszystko fajnie tylko teraz jak padnie serwer i zostanie wyłączony redis zmienna sie wyzeruje tzn liczba wyświetleń, czy można taką zmienną zapisać do bazy i oczywiście gdy zostanie rozłączony server odczytać taką zmienną? Czy istnieje jakaś inna możliwość na trwałość takiej zmiennej?