やりたいこと
部署IDをマルチスレッドで渡しそれぞれ部署に所属する人の
属性情報を抽出して、最終的にはクライアントにjsonを1つ返却したいです。
json
1{ 2 "devId" : 111 3 personList :[ 4 {'personId' : a1, 5 'attr' : "販売員"}, 6 {'personId' : a2, 7 'attr' : "会計員"}, 8 ] 9}, 10{ 11 "devId" : 222 12 personList :[ 13 {'personId' : c1, 14 'attr' : "エンジニア"} 15 ] 16}
python
1 2dest = dict() 3dest.setdefault("items",[]) 4 5 6def lambda_handler(devIdList): 7 8 tpe = ThreadPoolExecutor(max_workers=len(devIdList), thread_name_prefix="thread") 9 result = list(); 10 11 for devId in devIdList: 12 future = tpe.submit(main,devId) 13 result.append(future); 14 tpe.shutdown() 15 16 for future in result: 17 List.append(future.result()) 18 19 return { 20 'headers': { 21 'Content-Type': 'application/json', 22 'Access-Control-Allow-Origin': '*' 23 }, 24 "body": json.dumps([i for i in List]) 25 } 26 27 28 29def main(devId): 30 #部署idを渡すと所属員を抽出 31 result = GETDevPerson(devId) 32 33 if result is not None: 34 if len(result['devIdList']) != 0: 35 dest11 = dict() 36 dest11.setdefault("devId",devId) 37 38 #所属員の詳細情報を抽出 39 for personId in result['devIdList']: 40 41 result = GETPersonattribute(personId) 42 43 if result is not None: 44 dict1 = { 45 'personId' : personId, 46 'attr' : result['attr'] 47 } 48 49 50 dest11["personList"].append(dict1) 51 dest["items"].append(dest11) 52 return dest 53 54
マルチプロセスを実装しても性能が全然向上しません。
どんなデータが取得できるのか細かく記載していないため
回答が難しいとは思いますが
実装方法に問題があるのでしょうか
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/08 12:19 編集
2021/03/08 12:23
退会済みユーザー
2021/03/09 02:45 編集
2021/03/08 23:40 編集