Dbfiller
Z MySQL Integra
Skrypt napisany w pythonie mający za zadanie symulację pracy fabryki przez określony czas na określonych warunkach.
Założenia ogólne
Skrypt do przeprowadzenia symulacji wykorzystuje dwa pliki xml: jeden zawierający opis symulacji, drugi dane bazy danych w której będzie zapisywał wyniki symulacji. Przykładowe plik xml z danymi symulacji:
<simulations> <sim> <name>sim1</name> <longname>Symulacja 1</longname> <users>100</users> <operations>20</operations> <duration>1</duration> </sim> </simulations>
Przykąłdowy xml z danymi bazy danych:
<databases> <database> <name>baza1</name> <longname>InnoDB on MySQL</longname> <engine>innodb</engine> <host>localhost</host> <port>3306</port> <user>username</user> <pass>password</pass> </database> </databases>
Skrypt na początku generuje zadaną ilość użytkowników i operacji umieszczając je w bazie. Później przechodząc po każdym dniu i zmianach każdego dnia (w zależności od dnia tygodnia 3, 1 i 0) losuje 1/3 pracowników na zmianę (uwzględniając 0-10% nieobecnych) uzupełnia bazę o operację każdego pracownika na zmianie. Losowe operację wykonywane są jedna po drugiej w zadanym czasie (z odchyleniem 15 min). Czas rozpoczęcia ostatniej operacji nie przekracza czasu zakończenia zmiany.
Uruchamianie
python dbfiller.py [options] datbase simulation
Dostępne opcje to:
- -v, --verbose generowany SQL będzie drukowany na wyjście.
- -h, --help wyświetla komunikat pomocy.
- -s, --show pokazuje listę zdefiniowanych w plikach XML baz oraz symulacji.
- -q, --quiet nic, poza końcowym podsumowaniem, nie zostanie wydrukowane na konsolę.
database to nazwa bazy danych z pliku xml.
simulation to nazwa symulacji z pliku xml.

