aio2o-fastapi-sample/api-server/app/dummy_inserter.py

32 lines
952 B
Python

import asyncio
from faker import Faker
import module.mysql_utils as sql
from module.pydantic_models import *
fake = Faker('ko_KR')
unique_num = 1
INSERT_NUM = 1000
class UserFactory:
unique_num = 0
@classmethod
def generate_user_name(cls):
cls.unique_num += 1
return f"{fake.name()}{cls.unique_num:04d}"
@classmethod
def generate_phone_number(cls):
return fake.phone_number()
@classmethod
def create(cls):
return (cls.generate_user_name(), cls.generate_phone_number())
async def main():
await sql.truncate_user_table() # clear user table
for i in range(INSERT_NUM):
await sql.create_user(*UserFactory.create())
# await asyncio.gather(*[sql.create_user(*UserFactory.create()) for i in range(INSERT_NUM)]) # 커넥션 INSERT NUM개수만큼 생기는 문제 Semaphore 등으로 해결해야 쓸수있음
return
if __name__ == "__main__":
asyncio.run(main())