Clustering

Overview

Run Jobs with different Users

We have to consider at least two different methods, on how thinks could be started:

  1. during schedule function in Kernel.php – here we can use the user() statement to select the user to run, like

    $schedule->exec('sleep 30; echo "hallo Welt"')->everyMinute()->user('mysql');
  2. by php artisan queue:work: start the artisan command with specified user rights and split queues based on users, like for example

    runuser -l dhcp -c "php artisan queue:work --daemon --queue=dhcp"
  3. Or some kind of supervisor approach – with different user statements ?

Approach 2. or 3. will be mostly used during clustering

 

needs to be checked and discussed

Generic Description

 

Mail


Hallo, nach weiteren 5 Minuten Recherche   denke ich wir sollten doch die messages queues nutzen. Es gibt mit artisan queue:worker --daemon die Möglichkeit einen Daemon zu starten, welcher in die Jobs Tabelle lauscht und ggf. sofern etwas zu erledigen ist dies ausführt. Man kann auch unterschiedliches queues anlegen – das könnten bei uns z.B. die unterschiedlichen DHCP Client Instanzen sein. Schaut euch bitte mal das Bild an: https://devel.roetzer-engineering.com:3128/confluence/display/LAR/Clustering Ich denke damit sollte es tendenziell gehen. In jedem Fall müssen wir uns nächste Woche dazu nochmal zu viert hinsetzen. @Sven: Ich würde wie folgt starten: 1. Schauen wie wir queues im pingpong modul nutzen können. 2. Dhcp Queue für ProvBase anlegen 3. Diese Queue sollte die DHCP Funktionen starten, z.B. dhcp_make() (wobei es hier durch Ninos Add-Ons noch mehr zu beachten gibt – zu klären) --> Evtl. mehrere Queues oder mit Parametern für alles neu bauen, bzw. nur ein einzelnes Modem ..   4. Experimente mit dem php artisan queue:worker als Daemon --> Das lustig ist ja, dass es egal ist ob der Daemon in der gleichen VM läuft oder nicht, da dieser nur auf die DB zugreift. Insofern sollten IMHO die messages queues für unsere zukünftige Clusterung der richtige Ansatz sein. Auch können Models oder sonst was übergeben werden ..