Привет, я использую гем активной записи отложенного задания в моем производственном приложении с Postgres, много фоновых заданий работают через отложенное задание
Одна вещь, которую я заметил в вывод pg: outliers в нашей производственной базе данных prop_exec_time для этого запроса составляет 4,5%, и за 45 часов произошло почти 1,8 миллиона вызовов.
Запрос:
UPDATE "delayed_jobs" SET locked_at = $1, locked_by = $2 WHERE id IN (SELECT id FROM "delayed_jobs" WHERE ((run_at <= $3 AND (locked_at IS NULL OR locked_at < $4) OR locked_by = $5) AND failed_at IS NULL) ORDER BY priority ASC, run_at ASC LIMIT $6 FOR UPDATE) RETURNING *
В соответствии с отложенным заданием, опросы по умолчанию проводятся каждые 5 секунд, но это происходит, даже если задание не выполняется. В настоящее время в нашем приложении нет дополнительной настройки.
Я думаю, я могу переопределить время по умолчанию для delayed_job, это окажет какое-либо влияние? Любые предложения по уменьшению количества звонков