Ich versuche, an einem Projekt zu arbeiten, wo ich eine Reihe von Blackout-Daten habe, die ich berücksichtigen muss, bevor Sie einige Aufträge starten. Beispiel erläutert:besten Weg, um mit Datumsbereich in Python zu behandeln
ich eine json Reihe von Terminen für Blackout wie diese:
blackout1:
startTime: 1-1-2016
endTime: 1-10-2016
blackout2:
startTime: 1-5-2016
endTime: 1-11-2016
blackout3:
startTime: 2-2-2016
endTime: 2-3-2016
wie Sie können einige von ihnen überlappt und manche nicht. Ich habe auch eine Liste von Jobs zu bestimmten Terminen laufen wie folgt:
job1:
runDate: 1-3-2016
job2:
runDate: 1-13-2016
so in meinem Beispiel nur job2 sollte laufen, weil sie nicht auf einem Blackout Datum geplant ist. Meine Art nach Daten zu suchen bestand darin, zwei Sets zu erstellen, eins für startTime und eins für endTime und dann benutze ich das erste Datum von startTime und das letzte Datum von endTime als Bereich für die erste Überprüfung, wenn ich die Jobs durchlaufe. Wenn ein Job außerhalb dieses Bereichs liegt, werde ich ihn zur Ausführung planen, aber wenn er innerhalb dieses Bereichs liegt, werde ich ihn mit allen Daten vergleichen. Ich nehme diesen Weg, um die Leistung zu verbessern, so dass ich nicht alle Blackout-Daten durchlaufen werde, wenn der Job nicht in diesem Bereich liegt. Ich bin mir nicht sicher, ob dies der beste Weg ist, dieses Szenario zu handhaben und nicht sicher, ob ich auch die beste Datenstruktur verwende.
auf der Suche nach mehr Gedanken.
Vielen Dank im Voraus!
Haben Sie so viele Sperrdaten, dass ein einfacher linearer Durchlauf durch alle von ihnen zu langsam ist? –