Created
August 25, 2019 09:49
-
-
Save nivleshc/024e04e6da64b182bb2bfd032f1a5e03 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def update_pushpinLabelsTable(tripdate): | |
global lastpushpinLabel | |
#update the pushpinLabels dynamodb table with all the pushpinLabels that were created in this invocation | |
print("update_pushpinLabelsTable:Uploading new pushpinLabels to dynamodb Table") | |
time_now = datetime.datetime.now(tz_sydney) #each item uploaded to dynamodb table will have the time it was inserted | |
time_now_str = time_now.strftime("%Y-%m-%d %H:%M:%S") | |
epoch_time_now = time_now.timestamp() | |
expirationTime = int(epoch_time_now + (dynamodb_item_expiry_in_days * 24 * 3600)) #convert expiry days to seconds | |
print("update_pushpinLabelsTable:time_now:", time_now_str," epoch_time_now:", epoch_time_now, " expirationTime:", expirationTime) | |
num_items_added_to_dynamodb = 0 | |
for index in range(1, lastpushpinLabel + 1): | |
pushpinLabel = index | |
pushpinLabelDesc = dict_pushpinLabel_to_desc_map[str(index)]['desc'] | |
vehicleId = dict_pushpinLabel_to_desc_map[str(index)]['vehicleId'] | |
inDynamodbTable = dict_pushpinLabel_to_desc_map[str(index)]['inDynamodbTable'] | |
latitude = dict_pushpinLabel_to_desc_map[str(index)]['latitude'] | |
longitude = dict_pushpinLabel_to_desc_map[str(index)]['longitude'] | |
tripId = dict_pushpinLabel_to_desc_map[str(index)]['tripId'] | |
#only write back to dynamodb table those entries that are new. Dynamodb items to be regarded as immutable and should not be changed. | |
#using TTL (which is set to attribute ExpirationTime) allows for easy cleanup of items as we don't want items longer than 24 hours as they | |
#are not being mapped (default expirationTime has been set to 2 days) | |
if (not inDynamodbTable): | |
try: | |
pushpinLabelsTable.put_item( | |
Item={ | |
'TripDate': str(tripdate), | |
'VehicleId': str(vehicleId), | |
'tripId': str(tripId), | |
'pushpinLabel': str(pushpinLabel), | |
'pushpinLabelDesc': str(pushpinLabelDesc), | |
'latitude': str(latitude), | |
'longitude': str(longitude), | |
'TimeAdded': time_now_str, | |
'ExpirationTime': expirationTime | |
} | |
) | |
num_items_added_to_dynamodb += 1 | |
except Exception as e: | |
print("update_pushpinLabelsTable:Error with put_item operation ",str(e)) | |
print("update_pushpinLabelsTable:TripDate:",str(tripdate)," VehicleId:",str(vehicleId)," pushpinLabel:",str(pushpinLabel)," pushpinLabelDesc:",str(pushpinLabelDesc)," Latitude:",str(latitude)," Longitude:",str(longitude)," TimeAdded:",time_now_str," ExpirationTime:",expirationTime) | |
num_items_added_to_dynamodb += 1 | |
print("update_pushpinLabelsTable:Uploaded ",num_items_added_to_dynamodb," new pushpinLabel(s) to dynamodb table. LastpushpinLabel:",lastpushpinLabel) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment