示例#1
0
文件: cities.go 项目: Avialeta/API
func processCities(chRawCities <-chan ovio.City) {
	go func() {
		for rawCity := range chRawCities {
			city := City{
				Id:          rawCity.Code,
				Name:        rawCity.Name,
				CountryCode: rawCity.Country,
			}

			Cities[city.Id] = city

			search.AddCity(mapCity(city))
			cache.SaveCities(city.Map())
		}

		search.CreateAirportsStr()
	}()
}
示例#2
0
文件: job.go 项目: Avialeta/API
func Scheduler() {
	log.Info.Print("Run Scheduler")

	if RestoreCountries() {
		RestoreCities()
		RestoreAirports()
		RestoreAirlines()

		for id := range Countries {
			search.AddCountry(mapCountry(Countries[id]))
		}

		for id := range Cities {
			search.AddCity(mapCity(Cities[id]))
		}

		for id := range Airports {
			search.AddAirport(mapAirport(Airports[id]))
		}

		search.CreateCitiesStr()
		search.CreateAirportsStr()

		log.Info.Println("Restore")
		return
	}

	chRawCountries := fetchCountries()

	chCountriesCities, chCountriesAirports := processCountries(chRawCountries)

	rawCities := fetchCities(chCountriesCities)
	rawAirports := fetchAirports(chCountriesAirports)

	processCities(rawCities)
	processAirports(rawAirports)

	go fetchAirlines()
}