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.

Linki