Files
py2ME/recordTasks.py

92 lines
2.6 KiB
Python

import asyncio
from recordGenerators import alerts,currentObservations,hourlyForecast,dailyForecast, airQuality, airportDelays, achesAndPains, breathing, heatingAndCooling, mosquitoActivity, pollenForecast, tideForecast, wateringNeeds
from radar import radarCollector
from datetime import datetime
async def updateMosaicTask():
mosaicUpdateIntervals = [i+1 for i in range(0, 60, 5)]
while True:
# Mosaic intervals are 5+1 minutes, so instead of waiting 40 seconds and running "Datetime.now()" twice, We run it once and wait for 60.
if datetime.now().minute in mosaicUpdateIntervals:
await radarCollector.collect("radarmosaic")
await asyncio.sleep(1)
async def updateSatradTask():
satradUpdateIntervals = [i+1 for i in range(0, 60, 10)]
while True:
#Satrad intervals are 10+1 minutes, so instead of waiting 40 seconds and running "Datetime.now()" twice, We run it once and wait for 60.
if datetime.now().minute in satradUpdateIntervals:
await radarCollector.collect("satrad")
await asyncio.sleep(1)
async def alertsTask():
while True:
await alerts.makeRecord()
await asyncio.sleep(60)
async def coTask():
while True:
await currentObservations.makeDataFile()
await asyncio.sleep(5 * 60)
# These tasks should be updated every hour
async def hfTask():
while True:
await hourlyForecast.makeDataFile()
await asyncio.sleep(60 * 60)
async def dfTask():
while True:
await dailyForecast.makeDataFile()
await asyncio.sleep(60 * 60)
async def aqTask():
while True:
await airQuality.writeData()
await asyncio.sleep(60 * 60)
async def aptTask():
while True:
await airportDelays.writeData()
await asyncio.sleep(60 * 60)
async def apTask():
while True:
await achesAndPains.makeRecord()
await asyncio.sleep(60 * 60)
async def brTask():
while True:
await breathing.makeDataFile()
await asyncio.sleep(60 * 60)
async def hcTask():
while True:
await heatingAndCooling.makeRecord()
await asyncio.sleep(60 * 60)
async def maTask():
while True:
await mosquitoActivity.makeRecord()
await asyncio.sleep(60 * 60)
async def pTask():
while True:
await pollenForecast.makeDataFile()
await asyncio.sleep(60 * 60)
async def tTask():
while True:
await tideForecast.makeRecord()
await asyncio.sleep(60 * 60)
async def wnTask():
while True:
await wateringNeeds.makeRecord()
await asyncio.sleep(60 * 60)