Skip to content

Instantly share code, notes, and snippets.

View vitalibaranov's full-sized avatar

Vitaliy Baranov vitalibaranov

View GitHub Profile
# скрипт полученяи id-к вакансии и инициатора для таски реимпорта
select hh_vacancy_id, coalesce(manager_id, initiator_id) as manager_id
from tms.external_vacancy_binding evb
join tms.hh_vacancy_import_task on external_vacancy_id::int = hh_vacancy_id
where evb.created_at > '2024-11-13' -- баг появился на проде 2024-11-14
and evb.created_at < '2024-11-19' -- пофикшен 2024-11-18
and vacancy_type = 'HH';
# python скрипт генерации данных для пуша в кафку
import time
@vitalibaranov
vitalibaranov / gist:ddda0bcf888d7d17eae7af9e322cd3fb
Created July 17, 2024 11:02
Декомпозиция пермишенов тарифов для BASE/OPTIMAL
1. Добавление пермишенов тарифов
[hh.ru] добавить данные о фичах тарифа в features таблицы service
[billing-statistics] отдавать features->features
[tms-core] сохранять features в company_client_tariff при синке c hh
[dbscripts] добавить поле хранения пермишенов hh в company_client_tariff
2. Пермишены действующего тарифа с учетом BASE/OPTIMAL
[tsm-core] перенести пермишены из TariffGBO в DEFAULT_TARIFF_PERMISSION_MAP, использовать при вычислении текущих пермишенов тарифа
[tms-core] при изменении тарифа по крону рассчитывать и сохранять текущий набор пермишенов тарифа компании (использовать статический mapping feature -> Set.of(Permission) для определения)
[dbscheme] таблица пермишенов тарифа компании (связь с hh_client_tariff)
tms-stat
Сервис агреграции и выдачи аналитических данных
Слушает бизнес топики кафка, сохраняет ивенты в таблице исторических данных. Переодически (по крону) из сохраненных данных формирует и сохраняет аналитические снепшоты. Данные хранит в БД tms_stat кластера hhservice.
tms-notifications
Сервис уведомлений пользователей
Хранит емейлы и настройки уведомлений для пользователей. Слушает бизнес топики кафка, для полученных ивентов формирует тексты нотификаций и передает на отправку через пуш в очередь rabbit (email уведомления через рассыльщик hh) и/или кафка топик для отправки через websocket или web-push-ы. Умеет по крону отправлять отложенные сообщения. Данные хранит в БД tms_notifcations кластера hhservice.
tms-indexer
Сервис индексации кандидатов
tms-stat
Сервис агреграции и выдачи аналитических данных.
Слушает бизнес топики кафка, сохраняет ивенты в таблице исторических данных. Переодически (по крону) из сохраненных данных формирует и сохраняет аналитические снепшоты. Данные хранит в БД tms_stat кластера hhservice.
tms-notifications
Сервис уведомлений пользователей
Хранит емейлы и настройки уведомлений для пользователей. Слушает бизнес топики кафка, для полученных ивентов формирует тексты нотификаций и передает на отправку через пуш в очередь rabbit (email уведомления через рассыльщик hh) и/или кафка топик отправки через websocket или web-push-ы. Умеет по крону отправлять отложенные сообщения. Данные хранит в БД tms_notifcations кластера hhservice.
tms-indexer
Сервис индексации кандидатов
tms-stat
Сервис агреграции и выдачи аналитических данных.
Слушает бизнес топики кафка, сохраняет ивенты в таблице исторических данных. Переодически (по крону) из сохраненных данных формирует и сохраняет аналитические снепшоты. Данные хранит в БД tms_stat кластера hhservice.
tms-notifications
Сервис уведомлений пользователей
Хранит емейлы и настройки уведомлений для пользователей. Слушает бизнес топики кафка, для полученных ивентов формирует тексты нотификаций и передает на отправку через пуш в очередь rabbit (email уведомления через рассыльщик hh) и/или кафка топик отправки через websocket или web-push-ы. Умеет по крону отправлять отложенные сообщения. Данные хранит в БД tms_notifcations кластера hhservice.
tms-indexer
ids=2785842,2919141,2363893,7902847,19416505,23701738,28084296,12268009,28084373,12850670,20393466,20692366,47567992,19384994,19979947,18256954,18257164,19111918,18871052,18992173,19007092,19007299,20183868,19513797,23732708,23705761,23784405,20392018,24685436,23708008,28191317,22078848,22508628,22508710,22509641,23501633,24470639,24479008,25183316,25183428,25183425,25183537,32949344,29741448,26413484,26861779,27088821,27214927,31141800,46247853,47581784,28148426,28149341,28149418,28206518,27779740,28575696,36746915,36747052,36746994,29706782,29761412,36747261,32178496,32179059,31874210,35072440,35885661,31116712,31116813,31130583,35690373,34958893,32401868,35287880,35690972,32803815,35692678,35247828,35196577,34709565,34488105,34655147,34652604,34654248,34654621,34968091,35059642,36751699,36751801,36751818,36751880,36400741,36220017,36490412,47798020,47565259,47566447,45875311,45876338,46923787,46923835,47789063,47568017,47568597,51331852,51535141,51545610
for value in $(echo $ids | sed "s/,/ /g")
do
curl -
Uncaught runtime errors:
×
ERROR
Failed to execute 'btoa' on 'Window': The string to be encoded contains characters outside of the Latin1 range.
at ExampleDocQuery (webpack-internal:///./src/components/ExampleDocQuery.tsx:13:135)
at renderWithHooks (webpack-internal:///./.yarn/__virtual__/react-dom-virtual-dc02d56a0f/0/cache/react-dom-npm-18.0.0-d6a12fba32-b02837ceb6.zip/node_modules/react-dom/cjs/react-dom.development.js:16141:18)
at mountIndeterminateComponent (webpack-internal:///./.yarn/__virtual__/react-dom-virtual-dc02d56a0f/0/cache/react-dom-npm-18.0.0-d6a12fba32-b02837ceb6.zip/node_modules/react-dom/cjs/react-dom.development.js:20833:13)
at beginWork (webpack-internal:///./.yarn/__virtual__/react-dom-virtual-dc02d56a0f/0/cache/react-dom-npm-18.0.0-d6a12fba32-b02837ceb6.zip/node_modules/react-dom/cjs/react-dom.development.js:22337:16)
at HTMLUnknownElement.callCallback (webpack-internal:///./.yarn/__virtual__/react-dom-virtual-dc02d56a0f/0/cache/react-dom-npm-18.0.0-d6a12fba32-b0283
javax.servlet.ServletException: org.glassfish.jersey.server.ContainerException: java.lang.AbstractMethodError: Receiver class ru.hh.jclient.common.balancing.StickyBalancerBuilder does not define or inherit an implementation of
the resolved method 'abstract ru.hh.jclient.common.RequestEngineBuilder withBalancingRequestsLogLevel(java.lang.String)' of interface ru.hh.jclient.common.RequestEngineBuilder.
at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:410)
at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:346)
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:366)
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:319)
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:205)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799)
at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1631)
at ru.hh.nab.telemetry.TelemetryFilter.do
@vitalibaranov
vitalibaranov / gist:6ae17e07d9442e8513be0c1dcbd3a409
Created January 22, 2024 13:16
Декомпозиция мутации
Декомпозиция мутация
[tms-api] задженерить тестовые обвязки под mutation (сейчас все сделано под query)
[tms-api] мониторинг мутаций (запросы в разрезе mutations/queries) ???
[tms-api] описание мутации в документации
----
а) Создание заявки:
[tms-hiring-request] вынести бизнес логику проверки пермишена на создание, валидации tms(существование менеджера) (дубль существующей ручки, выпил старой)
[tms-api] резолвер получения ареек с фильтром по названию (id-ки нужны для передачи в резолвер)