2010-07-10 2 views
0

Я строю веб-сайт с Rails, который сделает что-то в фоновом режиме. Я не хочу использовать DelayedJob, потому что ему нужна база данных.Есть что-нибудь вроде DelayedJob, но не использовать База данных

Что я не могу сделать, это просто: получить некоторые данные с другого сайта, сохранить ответ в памяти и сохранить его в течение 10 минут.

Есть ли какие-либо инструменты для этого?

+0

FWIW, DelayedJob имеет подключаемые модули. Вы можете столкнуться с проблемой написания плоского файла. (Я не мог найти существующий.) Код для поддержки ActiveRecord - это действительно только 80ish строк: http://github.com/collectiveidea/delayed_job/blob/master/lib/delayed/backend/active_record.rb –

ответ

1

Использование resque http://github.com/defunkt/resque. Он использует резервное хранилище данных redis, а не базу данных.

+0

спасибо , Я использую resque сейчас, это хорошо – Freewind

0

Для этого вы можете использовать задачу рейка в фоновом режиме. Запустите его как задание cron или демон для выполнения задач в фоновом режиме.

+0

вы можете хранить результаты в memcached или в каком-то плоском файле ... любым способом, который вы хотите. Memcached будет лучше, поскольку у него есть время истечения срока действия. –

+0

Если вы хотите запустить задачу рейка из приложения, это может помочь http://railscasts.com/episodes/127-rake-in-background –

+0

Я пробовал Memcached, но нашел, что ему нужно как минимум 48M, это слишком дорого для мой бедный VPS (240M памяти), и я решил использовать Resque. Спасибо за информацию ~ – Freewind

1

Возможно, вы захотите также попробовать whenever. Это в основном рубиновый скрипт, который записывает запланированную работу в cron.

+0

спасибо. Всякий раз, когда кажется очень хорошим, я попробую его в другом месте – Freewind