Use batch insert for HRRR profiles, tune Postgres for 16GB host
This commit is contained in:
parent
83ab40fdad
commit
ebeaaa06e4
1 changed files with 28 additions and 20 deletions
|
|
@ -32,8 +32,14 @@ defmodule Microwaveprop.Workers.HrrrFetchWorker do
|
|||
|
||||
case HrrrClient.fetch_grid(point_tuples, valid_time) do
|
||||
{:ok, grid_data} ->
|
||||
Enum.each(grid_data, fn {{lat, lon}, data} ->
|
||||
store_profile(lat, lon, valid_time, data)
|
||||
profiles =
|
||||
Enum.map(grid_data, fn {{lat, lon}, data} ->
|
||||
build_profile_attrs(lat, lon, valid_time, data)
|
||||
end)
|
||||
|
||||
Weather.upsert_hrrr_profiles_batch(profiles)
|
||||
|
||||
Enum.each(grid_data, fn {{lat, lon}, _data} ->
|
||||
broadcast_enrichment(lat, lon, valid_time)
|
||||
end)
|
||||
|
||||
|
|
@ -70,26 +76,28 @@ defmodule Microwaveprop.Workers.HrrrFetchWorker do
|
|||
end
|
||||
|
||||
defp store_profile(lat, lon, valid_time, data) do
|
||||
attrs = build_profile_attrs(lat, lon, valid_time, data)
|
||||
Weather.upsert_hrrr_profile(attrs)
|
||||
end
|
||||
|
||||
defp build_profile_attrs(lat, lon, valid_time, data) do
|
||||
params = SoundingParams.derive(data.profile)
|
||||
|
||||
attrs =
|
||||
maybe_add_derived_params(
|
||||
%{
|
||||
valid_time: valid_time,
|
||||
lat: lat,
|
||||
lon: lon,
|
||||
run_time: data.run_time,
|
||||
profile: data.profile,
|
||||
hpbl_m: data.hpbl_m,
|
||||
pwat_mm: data.pwat_mm,
|
||||
surface_temp_c: data.surface_temp_c,
|
||||
surface_dewpoint_c: data.surface_dewpoint_c,
|
||||
surface_pressure_mb: data.surface_pressure_mb
|
||||
},
|
||||
params
|
||||
)
|
||||
|
||||
Weather.upsert_hrrr_profile(attrs)
|
||||
maybe_add_derived_params(
|
||||
%{
|
||||
valid_time: valid_time,
|
||||
lat: lat,
|
||||
lon: lon,
|
||||
run_time: data.run_time,
|
||||
profile: data.profile,
|
||||
hpbl_m: data.hpbl_m,
|
||||
pwat_mm: data.pwat_mm,
|
||||
surface_temp_c: data.surface_temp_c,
|
||||
surface_dewpoint_c: data.surface_dewpoint_c,
|
||||
surface_pressure_mb: data.surface_pressure_mb
|
||||
},
|
||||
params
|
||||
)
|
||||
end
|
||||
|
||||
defp handle_error(reason, label) do
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue