Я делаю некоторые настройки производительности приложения, используя статистику, собранную из skylight.io , и одна страница, которая немного проблематична, показывает, что выполнение задания ActiveJob занимает в среднем 21 мс (вся страница занимает в среднем 131 мс, что составляет 16% времени загрузки).Проблемное действие выглядит следующим образом:
TrackVacancyPageViewJob.perform_later(vacancy.id) unless session[:session_id].present?
Если я посмотрю на другие подобные действия в очереди, они будут выполняться намного быстрее - больше в диапазоне 2 - 5 мс.Вот пример:
AuditExpressInterestEventJob.perform_later(
datestamp: Time.zone.now.iso8601.to_s,
vacancy_id: vacancy.id,
school_urn: vacancy.school.urn,
application_link: vacancy.application_link
)
Поэтому мой вопрос: что может быть причиной этого?Все они разговаривают с одним и тем же экземпляром redis, но с отдельными очередями.Является ли размер очереди проблемой?Или есть что-то еще, что я не учел?
Вот мои рабочие места:
class TrackVacancyPageViewJob < ApplicationJob
queue_as :page_view_collector
def perform(vacancy_id)
vacancy = Vacancy.find(vacancy_id)
VacancyPageView.new(vacancy).track
end
end
class AuditExpressInterestEventJob < ApplicationJob
queue_as :audit_express_interest_event
def perform(data)
AuditData.create(category: :interest_expression, data: data)
end
end
И мой sidekiq.yml здесь:
:queues:
- [ mailers, 3 ]
- [ queue_daily_alerts, 3 ]
- [ email_daily_alerts, 4 ]
- [ page_view_collector, 2 ]
- [ performance_platform, 2 ]
- [ google_indexing, 2]
- [ import_school_data, 1 ]
- [ update_vacancy_spreadsheet, 1 ]
- [ audit_published_vacancy, 1 ]
- [ audit_express_interest_event, 1 ]
- [ audit_search_event, 1 ]
- [ audit_feedback, 1 ]
- [ audit_spreadsheet, 1 ]
update_vacancy_spreadsheet:
:concurrency: 1
audit_published_vacancy:
:concurrency: 1
audit_express_interest_event:
:concurrency: 1
audit_search_event:
:concurrency: 1
audit_feedback:
:concurrency: 1
audit_spreadsheet:
:concurrency: 1
audit_toc_acceptance_event:
:concurrency: 1
mailers:
:concurrency: 2