|
@@ -1,19 +1,22 @@
|
|
|
import subprocess
|
|
|
from concurrent.futures import ThreadPoolExecutor
|
|
|
+from functools import partial
|
|
|
from pathlib import Path
|
|
|
|
|
|
+from database.model import load_config
|
|
|
|
|
|
-def task(name: str) -> subprocess.Popen:
|
|
|
+
|
|
|
+def task(name: str, increment: bool = True) -> subprocess.Popen:
|
|
|
logfile = Path(name).parent.parent / "logs" / (Path(name).name + ".log")
|
|
|
- return subprocess.Popen(f'C:\\Windows\\System32\\cmd.exe /C "{name} 1"', stdout=logfile.open("w")).wait()
|
|
|
+ flag = "1" if increment else ""
|
|
|
+ return subprocess.Popen(f'C:\\Windows\\System32\\cmd.exe /C "{name} {flag}"', stdout=logfile.open("w")).wait()
|
|
|
|
|
|
|
|
|
-def run(base_dir: str, max: int = 5) -> None:
|
|
|
- files = [str(f) for f in Path(base_dir).glob("*.bat") if not f.name.startswith("_")]
|
|
|
+def run(config_file: str, increment: int, max: int) -> None:
|
|
|
+ cfg = load_config(config_file)
|
|
|
+ files = [str(f) for f in Path(cfg.batch_dir).glob("*.bat") if not f.name.startswith("_")]
|
|
|
+ flag = increment == 1
|
|
|
+ task2 = partial(task, increment=flag)
|
|
|
|
|
|
with ThreadPoolExecutor(max_workers=max) as executor:
|
|
|
- executor.map(task, files)
|
|
|
-
|
|
|
-
|
|
|
-if __name__ == "__main__":
|
|
|
- run("C:\\GlobalCube\\System\\OPTIMA\\SQL\\batch")
|
|
|
+ executor.map(task2, files)
|