Если вы хотите, чтобы функциональность синхронизации была частью вашего приложения Rails, то вы можете создать эту логику в отдельном классе модели (назовем его LDAPSynchroniser
).
Затем вы можете использовать его из нескольких мест, в том числе:
- Задача Rake для ручной синхронизации;
- Задание Cron Запуск задания Rake;
- Запустить синхронизацию из веб-приложения (учитывать время, необходимое для запуска!)
Задание с рейком будет выглядеть так:
task :cron => :ldapsync do
puts "Sync-ing with LDAP..."
status = LDAPSynchroniser.new.run
puts "done: #{status.to_s}"
end
Триггером веб-приложения будет обычный контроллер:
def LDAPSyncController < ...
# probably authentication is needed...
def sync
status = LDAPSynchroniser.new.run # or run it in a separate thread-ish
# respond with status
end
end
Теперь, чтобы ответить на ваши вопросы:
Где в моем приложении я должен периодически импортировать данные в мои таблицы из LDAP?
Используйте грабли + крон.
Использую ли я Rails?
Вам, вероятно, нужно загружать рельсы, но для этого вам не нужно запускать веб-сервер rails.
Хотя вы можете запускать задачу из самого веб-приложения.
Должен ли я сделать это прямо на Ruby и запустить его как задание cron?
Делать это в Rails было бы немного проще, так как у вас уже есть модель и все, что вам нужно.
С Plain Ruby это тоже возможно, но я не думаю, что оно того стоит.