Почему я получаю H28 / «Клиентское соединение простаивает» на heroku dev-dyno при отправке JSON среднего размера?

#json #node.js #meteor #heroku #connection-timeout

#json #node.js #метеор #heroku #время ожидания соединения

Вопрос:

У меня есть простое Meteor приложение на heroku dev dyno, и я заметил, что если полезная нагрузка JSON в POST запросе ed немного больше (в данном случае Content-Length: 2161 ), время ожидания соединения истекает.

Проходит только каждый 6-7-й запрос, даже если я единственный пользователь.

Запрос curl:

 curl -X POST -H 'Content-Type: application/json; charset=UTF-8' http://APP_SUBDOMAIN.herokuapp.com/api/cars/ --data '{"_id":"car-data-10","crlData":{"latitude":48.17375412849221,"longitude":11.531698666512966,"mapIcon":"/imgs/car_icon_white.png","mapIconSelected":"/imgs/car_icon_red.png","positionInitialized":true,"rotation":90.0},"description":"Das Fahrzeug ist in einem sehr guten Zustand. Letzter Service wurde bei 81000km gemacht. nFahrzeug ist achtfach bereift.nWinterreifen,TUV, und die Batterie sind neu. Ausserdem sind alle Bremsen neu.nnDie abnehmbare Anhangerkupplung wurde nur fur einen Fahrradtrager verwendet.nnWeitere Sonderaustattungen: Dynaudio Soundsystem, Berg An - und Abfahrhilfe, automatisches Auf -und Abblendlicht, Coming Leaving Home, Innenraumbeleuchtung dimmbar, Auf -und Abblendlicht Xenon, Tagfahrlicht, selbslenkendes Einparken, dunkler Innenraumhimmel.","features":{"exterior":["Alloy wheels","Electric side mirror","Trailer coupling"],"extras":["Full Service History","Non-smoker vehicle"],"interior":["Bluetooth","CD player","Central locking","Climatisation (Automatic air conditioning)","Electric heated seats","Electric seat adjustment","Electric windows","Hands-free kit","MP3 interface","Multifunction steering wheel","On-board computer","Parking sensors (Front, Rear, Self-steering systems)","Power Assisted Steering","Sport seats","Tuner/radio"],"safety":["ABS","Adaptive lighting","Airbags (Front and Side and More Airbags)","Daytime running lights","ESP","Fog lamp","Immobilizer","Light sensor","Rain sensor","Xenon headlights"]},"images":["/dealerships/bmw/view_files/jpg/default_3.jpg"],"make":"BMW","model":"330d xDrive Touring","price":"16500","technicalData":{"extended":{"co2_emissions_combined":null,"colour":null,"cubic_capacity":null,"door_count":null,"emission_class":null,"emissions_sticker":null,"fuel_consumption_combined":null,"fuel_consumption_extra_urban":null,"fuel_consumption_urban":null,"hu":null,"interior_colour":null,"interior_design":null,"number_of_seats":null},"main":{"category":"saloon, used vehicle","first_registration":"fr 11/2010","fuel_type":"petrol (e10-enabled)","gearbox":"manual gearbox","power":"155 kw (211 ps)"}},"title":"BMW 330d xDrive Touring","makeAndModel":"BMW 330d xDrive Touring"}'
 

Ошибка на сервере:

 at=warning code=H28 desc="Client Connection Idle" method=POST path="/api/cars/" host=APP_SUBDOMAIN.herokuapp.com request_id=b3a75450-8fa2-4c71-a0b5-526b918dade2 fwd="IP_ADDRESS" dyno=web.1 connect=0ms service=55083ms status=499 bytes=0
2016-10-13T21:22:58.286627 00:00 app[web.1]: Error: request aborted
 

С другой стороны, контент, подобный

  --data '{"_id":"car-data-10","crlData":{"latitude":48.17375412849221,"longitude":11.531698666512966,"mapIcon":"/imgs/car_icon_white.png","mapIconSelected":"/imgs/car_icon_red.png","positionInitialized":true,"rotation":90.0}}'
 

of Content-Length: 217 проходит каждый раз без проблем.

Локально все работает гладко.

В этом демонстрационном приложении, над которым я работаю, я уменьшил полезную нагрузку запроса, но

… мой вопрос:

существуют ли какие-либо ограничения, о которых я не знаю, которые могут вызывать тайм-ауты?

PS. На стороне сервера я делаю простое сохранение в базе данных

Комментарии:

1. Вы тестировали локальную работу?

2. Локально все в порядке.

3. @Matyas вы нашли ответ на эту проблему?

4. К сожалению, нет. В итоге я развернул приложение где-то в другом месте