Как использовать AWS лямбда в python для запуска нескольких функций одновременно - PullRequest
0 голосов
/ 31 марта 2020

В настоящее время у меня есть код, который возвращает данные о школе из базы данных и сохраняет их в CSV-файле:

schoolID = '12345'

def getSchool(schoolID):
    School = SchoolsDB.find_one({"_id": ObjectId(schoolID)})
    return School
school = getSchool(schoolID)


school.to_csv(schoolID + ".csv")

В настоящее время он принимает идентификатор школы и запускает одну школу за раз. Я попытался положить его в поле l oop, чтобы оно автоматически запускало одну школу за другой, но я хочу иметь возможность управлять всеми школами одновременно.

Я хочу использовать лямбда для запуска всех школ одновременно, а не по одной за раз. Кто-нибудь знает, как это сделать?

1 Ответ

1 голос
/ 31 марта 2020

Из чисто Python POV:

Похоже, вы используете какую-то форму MongoDB, вместо того, чтобы функция принимала один идентификатор и выполнялась каждый раз, почему бы не передать ей массив и найти все они в одном go.

def getSchool(list_of_school_ids):
    Schooldb.collection.find( { _id : { $in : list_of_school_ids} } )

school = getSchool(list_of_school_ids=["1234", "5678"])

Тогда просто создайте массивный CSV, где каждый ряд - ваша запись в SchoolsDB - хотя я подхожу к этому полностью слепому.

Если нет, вы можете посмотреть:

https://aws.amazon.com/blogs/compute/parallel-processing-in-python-with-aws-lambda/

Но моя интуиция говорит мне, что для вашего случая использования это излишне:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...