diff --git a/init_user_state.py b/init_user_state.py index a700082176e3f8564941eb3033cdd562198cae69..d18724e7b3d03a5bd0056c31b46b295b353fa7b6 100644 --- a/init_user_state.py +++ b/init_user_state.py @@ -15,6 +15,9 @@ args = parser.parse_args() default_state = "ok" +# Chunk size for insert into db +size = 1000 + db = dataset.connect(f"sqlite:///prod_rmq_agents/{rcfg.db_path}/user_reg.db") table = db["user_state"] @@ -28,6 +31,23 @@ users = subprocess.run( ).stdout.split() # Update user_state table +# Insert many +if len(users) > 50: + start = 0 + today = datetime.now() + while start < len(users): + end = start + size if start + size < len(users) else len(users) + data = [ + dict(username=user, state=default_state, date=today) + for user in users[start:end] + ] + if args.dry_run: + print(f"Table insert many from {start} to {end - 1}") + else: + table.insert_many(data, chunk_size=size) + start = end + +# Insert one by one for user in users: if args.dry_run: print(f"Table insert user: {user}, state: {default_state}")