2010-03-08 15 views
9

Mam funkcję w moim CMS, która pozwala użytkownikowi na załadowanie pliku zip pełnego obrazów, a serwer wyodrębni je i wstawi każdy do galerii obrazów. Zauważyłem, że to dość mocno obciąża procesor i powoduje spowolnienie innych żądań.Uruchamianie zadań w tle przy niższym priorytecie procesora

Zastanawiam się nad wykorzystaniem wtyczki delayed_job do delegowania każdego dodania obrazu do tła, ale chcę też nadać temu procesowi niższy priorytet procesora, aby nie obciążał on serwera.

Jestem przekonany, że część ćwiczenia opóźnia się, ale część z dławieniem jest tu, gdzie utknąłem. Czy istnieje rubinowy sposób obniżania priorytetu wywołania metody?

To zmiana rozmiaru obrazu powoduje żucie procesora.

Wszelkie pomysły mile widziane :)

Odpowiedz

6

Jeśli CMS działa na systemie Linux, można to zrobić za pomocą polecenia „Nice”. "nice" rozpocznie proces z niższym priorytetem. Najprostszym sposobem użycia jest po prostu ładnie postawić przed komendą. Więc jeśli zostały uruchomione polecenia jak

unzip uploaded-images.zip

zamiast uruchomić

nice unzip uploaded-images.zip

spowoduje proces rozpakowywania, aby uzyskać niższy priorytet procesora, pozwalając inne procesy uruchamiane w pierwszej kolejności. Zobacz man page, aby uzyskać więcej opcji, np. Jak dostosować poziom priorytetu.

+0

Dziękuję za to, natknąłem się na to z google: http://stackoverflow.com/questions/1340142/preventing-delayed-job-background-jobs-z-konsumpcji-to-muzy-cpu-na-a -jedno-se –

Powiązane problemy