Senior
19
HeadHunter умеет присылать отклик через webhook, а Avito не умеет — надо самим ходить. Как это обрабатывать?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Для обработки откликов от HeadHunter через webhook и от Avito через периодический опрос (polling) можно реализовать гибкую архитектуру, которая поддерживает оба варианта:
-
Webhook для HeadHunter:
- Настроить HTTP-сервер, который принимает POST-запросы от HeadHunter с данными отклика.
- Обрабатывать полученные данные сразу после получения.
-
Polling для Avito:
- Запустить периодическую задачу (например, с использованием таймера или cron), которая по расписанию делает запросы к API Avito для получения новых откликов.
- Обрабатывать полученные данные аналогично webhook.
-
Общая обработка:
- Вынести логику обработки откликов в общий модуль, чтобы не дублировать код.
Пример на Go с использованием goroutine и HTTP-сервера:
// Обработчик webhook
func hhWebhookHandler(w http.ResponseWriter, r *http.Request) {
// Парсим и обрабатываем данные от HeadHunter
}
func pollAvito() {
for {
// Запрос к API Avito
// Обработка откликов
time.Sleep(5 * time.Minute) // интервал опроса
}
}
func main() {
http.HandleFunc("/hh-webhook", hhWebhookHandler)
go pollAvito() // запускаем polling в отдельной горутине
http.ListenAndServe(":8080", nil)
}
Таким образом, система одновременно принимает push-уведомления от HeadHunter и самостоятельно опрашивает Avito, обеспечивая единый поток обработки откликов.