Udělal bych to pomocí nástroje make
. Příkladů musí být na internetu tuny, umí i paralelní zpracování.
Předpokladem je, že optimalizované verze budou v jiném adresáři (nebo budou odlišené názvem).
Ten předpoklad na mém malém web serveru nelze splnit. Uživatel nahraje obrázek, wordpress z toho obrázku udělá x dalších obrázků - například:
Můžete udělat nějaký „značkovací“ soubor. Dejme tomu, že obrázek bude třeba IMG_001.JPG, vy ho zoptimalizujete a uděláte soubor např. IMG_001.DONE, podle kterého pak make sám pozná, že už nemá na IMG_001.JPG sahat, pokud není JPG novější než DONE.
Kanón na vrabce to asi není, make je přesně ten jednoúčelový nástroj, který dělá dobře, co má:
# Makefile:
SRCDIR := .
SRCFILES := $(wildcard $(SRCDIR)/*.jpg)
TRGFILES := $(patsubst $(SRCDIR)/%.jpg,$(SRCDIR)/%.done,$(SRCFILES))
all: $(SRCFILES) $(TRGFILES)
# @echo "Make $@: from: $?";
%.done : %.jpg
@echo "Make: $@ from: $?";
@echo "*** Here you should optimalize: $? ***"
@touch $@;
clean:
@rm -vf $(TRGFILES);
#eof
Použití:
make clean # odstranit .done soubory
make all # zpracovat obrázky
make all -j 3 # toto by mělo spustit 3 paralelní úlohy