1

У меня есть действие в контроллере, который может занять много времени.Предотвращение одновременного выполнения действия ActionController

Я хочу, чтобы оба пользователя не запускали его одновременно.

До сих пор я вставляю запись в базу данных при запуске и удаляю ее, когда закончите.

Что является лучшим способом сделать это?

ответ

1

Вы можете перенести это на что-то в фоновом режиме, например, на DelayedJob, чтобы избежать блокировки вашего приложения, или вы можете сделать свой замок с базой данных более общим. Эта стратегия не кажется слишком необоснованной, особенно если она не позволяет вашему приложению расплавиться.

+0

Спасибо! В итоге я использовал команду rake и cron для запуска моего скрипта. – hometoast

Смежные вопросы