Как мне подходить к отображению актуальных данных из внешнего API (с рельсами)?

Итак, я пытаюсь создать небольшое приложение для внутреннего использования в небольшом агентстве по разработке / разработке, в котором я работаю. Я довольно новичок в рельсах (я разработчик внешнего интерфейса), но я учусь.

Цель состоит в том, чтобы приложение получало данные из Harvest и отображало ежедневные / еженедельные / ежемесячные часы, отработанные для каждого из 10 сотрудников, а также другую информацию, такую ​​как то, активны ли они в настоящее время и какой процент их работы оплачивается. Информация должна обновляться примерно каждую минуту.

Мне просто нужен совет о том, как лучше всего структурировать этот проект, так как большая часть данных, с которыми я работаю, будет получена из внешнего источника. Сначала я попытался просто сохранить имя, адрес электронной почты и идентификатор урожая для каждого пользователя в моей базе данных pg, а затем использовать идентификатор_дождя в качестве ссылки для запроса сбора данных для нужных мне данных. Вот пример того, как я собираю отчеты о работе:

    def harvest_user
      harvest.users.find(self.harvest_id)
    end


    def entries(interval, billable)
      user = self.harvest_user
      entries = harvest.reports.time_by_user(user, interval, DateTime.now, billable)
      sum = 0
      entries.each do |entry|
        hrs = entry.hours.to_s.to_f
        sum += hrs
      end
      sum.round(1)
    end

Затем я обновляю данные каждую минуту, делая ajax-вызов для частичного рендеринга данных.

Все работает правильно, но начальная загрузка страницы действительно очень медленная, поэтому я предполагаю, что я что-то делаю не так.

Любой совет? Я чувствую, что могу ухватиться за некоторые идеи о том, как сделать один большой вызов API и затем отфильтровать эти данные по мере необходимости, но я не совсем уверен, с чего начать.

Спасибо!

0 ответов

Другие вопросы по тегам