Oft habe ich den Fall, dass ein Shell-Skript im Cron läuft. Manchmal läuft es aber so lange, dass es vom cron ein zweites Mal gestartet wird. Das will ich verhindern. Nun habe ich eine schicke Lösung gefunden: lockfile=/var/lock/.$(basename $0).exclusivelock ( # Wait for lock on $lockfile (fd 200) for 10 seconds if ! flock -x Read More…
Schlagwort: locking
Node-übergreifendes Locking
In einer Umgebung mit mehreren Nodes (im Cluster z.B.) will man schonmal verhindern, dass Code-Teile mehrfach parallel laufen. Node-Lokale Dinge wie Javas „synchronized“ oder explizite Speicher-Semaphoren helfen dabei natürlich nicht. Idee mit Hilfe einer DB-Tabelle, auf die alle zugreifen können: Tabelle Locks mit nur einer Spalte ID. jeder zu schützende Code-Bereich hat eine ID und Read More…