Only generate calculate in the future
This prevents backscheduling in cases of farmbot rebooting or going offlinepull/974/head
parent
0d96ca9cb3
commit
7aff1dd3e9
|
@ -2,7 +2,7 @@ defmodule FarmbotCore.FarmEventWorker.SequenceEvent do
|
|||
require Logger
|
||||
alias FarmbotCeleryScript.AST
|
||||
alias FarmbotCore.{
|
||||
Asset,
|
||||
Asset,
|
||||
Asset.FarmEvent
|
||||
}
|
||||
use GenServer
|
||||
|
@ -18,12 +18,12 @@ defmodule FarmbotCore.FarmEventWorker.SequenceEvent do
|
|||
farm_event = state.farm_event
|
||||
|
||||
farm_event
|
||||
|> FarmEvent.build_calendar(farm_event.start_time)
|
||||
|> FarmEvent.build_calendar(DateTime.utc_now())
|
||||
# get rid of any item that has already been scheduled/executed
|
||||
|> Enum.reject(fn(scheduled_at) ->
|
||||
|> Enum.reject(fn(scheduled_at) ->
|
||||
Asset.get_farm_event_execution(farm_event, scheduled_at)
|
||||
end)
|
||||
|> Enum.each(fn(at) ->
|
||||
|> Enum.each(fn(at) ->
|
||||
schedule_sequence(farm_event, at)
|
||||
end)
|
||||
{:noreply, state}
|
||||
|
@ -56,4 +56,4 @@ defmodule FarmbotCore.FarmEventWorker.SequenceEvent do
|
|||
}
|
||||
FarmbotCeleryScript.schedule(celery_ast, at, farm_event)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue