Rails - это нормально (или возможно) запускать грабли внутри контроллера? - PullRequest
1 голос
/ 10 января 2011

Я использую гем sitemap_generator для создания XML-карты сайта. Из файла readme:

... запустить rake sitemap: обновите по мере необходимости для создания / перестройки файлов Sitemap

Я бы предпочел сделать это в любое время, когда действие create выполняется в моем контроллере контента. Есть ли лучший способ сделать что-то подобное?

1 Ответ

4 голосов
/ 10 января 2011

Возможно, да.Но я бы не рекомендовал это.Rake-задачи обычно занимают не менее нескольких секунд, что занимает запрос сервера и продлевает ответ клиенту.

Если вы хотите обновлять карту сайта после каждого создания, я бы порекомендовал одну из двухрешения.Либо проанализируйте, что делает карта сайта rake task: refresh, и используйте код прямо с вашего контроллера.Но я бы сделал это только до тех пор, пока это не займет слишком много времени для запуска, и, поскольку я мало что знаю о sitemap_generator, я не могу сказать.

Другой вариант - запустить граблизадача из delayed_job , которую я считаю предпочтительной альтернативой.Таким образом, вы можете запустить задание из действия создания, но вам не нужно ждать его завершения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...