WordPress-Patch: Veröffentlichung von Beiträgen dauert sehr lange
Manchmal hat auch es auch sein Gutes, daß Owen Winkler die Hoheit über das WordPress-Dashboard erlangt hat. Sein Blog Asymptomatic ist ohnehin lesenswert und nun beschäftigte er sich mit der Problematik, daß WordPress 2.0.1 beim Veröffentlichen von Postings ewig lange, manchmal unendlich lange braucht. Er macht den Ping-Service Pingomatic dafür verwantwortlich, denn dieser RPC–Dienst ist bei den meisten WordPress-Installationen standardmäßig voreingestellt und bei der ständig wachsenden Zahl an WordPress-Usern stark beansprucht. Das zeigt auch die Statistik unter grabperf.org. Pingomatic ist quasi rund um die Uhr voll ausgelastet. Owen begründet damit die lange Wartezeit bis zur Veröffentlichung eines Beitrages und empfiehlt deshalb, einen besser erreichbaren Service zu nutzen. Ein kurzer Test mit einem der genannten Dienste scheint diese Theorie zu bestätigen.
Es ist jedoch auch eine andere Lösung möglich, denn seit dem 13.02. liegt im WordPress Trac ein Patch zur Lösung des Problems vor. Da eine installierbare Version dieses Patches erst mit Milestone 2.1 zu erwarten ist, hier nun eine kurze Anleitung, wie er mit einem manuellen Eingriff durchgeführt werden kann. Vorher bitte in jedem Fall ein Backup der zu modifizierenden Datein anlegen (am besten durch umbenennen auf dem Server).
1. Modifikation der Datei /wp-includes/default-filters.php. Die Zeile Nr. 85
add_action('publish_post', 'generic_ping');
ist ersatzlos zu löschen.
2. Modifikation der Datei /wp-admin/execute-pings.php. In Zeile Nr. 25 ist folgendes einzufügen:
generic_ping();
Das Problem lag also darin, daß die Auslösung des Pings explizit mit der »Publish-Post«-Aktion verbunden war, so daß die Rückkehr zum Admin-Panel erst möglich war, wenn der Ping vorgenommen wurde (default-filters.php). Das Pingen an sich, wurde nun in die separate Datei execute_pings.php ausgelagert, mit der Folge, daß der Ping unabhängig von der Veröffentlichung des Beitrages ist und diese wieder mit »normaler Geschwindigkeit« erfolgt. Für ganz Faule hier die beiden korrigierten Dateien zum Download:
Patch: Publish takes long time (some say forever)
Download: changeset-3524.zip (1.271 Bytes)
Das ganze natürlich ohne jegliche Gewähr auf Funktionstüchtigkeit, in der Praxis funktioniert es bei mir aber zur vollsten Zufriedenheit. (Noch mal: vorher Backup der beiden Dateien anlegen).
Hinweis: Auf Grund eines Kommentares von Owen noch mal zur Klarstellung: Der Ping selbst wird durch die Modifikation im Hintergrund ausgeführt. Dadurch erhält man aber im Zweifelsfall keine Rückmeldung, ob Pingomatic tatsächlich erreicht und der Ping erfolgreich durchgeführt wurde.
Owen
15.02.2006
13:52 CET
I should note that using this patch doesn’t speed up the actual pinging, but makes the pinging take place in the background so that it seems to work faster. If Pingomatic fails, you’ll never know.
John
15.02.2006
14:21 CET
Thanks Owen, I will add that information to the post.
SuMu
15.02.2006
15:30 CET
danke, hab einfach pingomatic gelöscht.
Matthias
15.02.2006
17:16 CET
Danke für den Tipp. Dieses Verhalten von WP hat mich schon fast in den Wahnsinn getrieben.
stanley goodspeed - erlanger netztagebuch » Schleichendes Posting
15.02.2006
21:30 CET
[…] Wen es in letzer Zeit ziemlicht angenervt hat, dass Wordpress beim Posten eines neues Beitrages so lange zum Reagieren braucht, erhält nun gute Nachricht: Owen Winkler hat sich in seinem Blog zu dem Thema geäußert und einen Workaround angeboten. Wer eine gute Übersetzung und eine kurze deutsche Erklärung zu der Problematik lesen will, dem lege ich wärmstens das Posting auf jowra.de nahe. Ich habe es ausprobiert und es klappt einwandfrei Wordpress Patch Manuel schrieb abends am 15. Februar 2006 | in blogging […]
Sebbis Blog » Ping-o-matic Test
15.02.2006
22:27 CET
[…] Nun, mal sehen wie fix es jetzt mit dem von ihm hier gefundenen Patch geht. Damit wird Ping-o-matic zwar nicht sofort gepingt, aber wen stört das schön, wenn das irgendwann später passiert. Bis jetzt habe ich sowieso noch nie einen Besucher von den angepingten Verzeichnissen kommen sehen. In den Millionen von neuen Artikeln pro Sekunde gehen meine kleinen wohl ein wenig unter … genauso wie jeder andere […]
Software Guide » WordPress: Probleme beim Beitrag veröffentlichen
18.02.2006
02:40 CET
[…] Jowra berichtet von einer programmatischen Lösung, um die 30 Sekunden Wartezeit zu vermeiden: mittels einem seit 13.02. im WordPress Trac veröffentlichten WordPress-Patch kann der Ping im Hintergrund ausgeführt werden, allerdings erhält man dadurch aber keinen Hinweis, wenn der Ping nicht erfolgreich ausgeführt wurde. […]
CMSBlog
24.02.2006
01:32 CET
Erstmal Wordpress getuned
Der Wordpress-Patch von jowra.de beschleunigt das Abspeichern.
…
Jörg Ingenbrand
25.02.2006
01:38 CET
Der Wordpress-Patch funktioniert einwandfrei, danke an jowra.de für die bereitgestellte Zip-Datei mit den bereinigten PHP–Dateien.
der herr mueller im netz » Blog Archive » Post-Turbo für WordPress
28.02.2006
13:21 CET
[…] (ebenfalls via jowra.de, auch dafür vielen Dank :)) […]
OpenFACTs 4 YOU WebBLOG » Blog Archive » Wordpress Speicherung getuned!
03.03.2006
21:47 CET
[…] Im Blog von Jowra.de habe ich ein Tunning-Tip für Wordpress gefunden. Es lohnt sich den einzubinden und hilft dabei schneller abzuspeichern. Die Beschreibung und die files die es zu ersetzen gibt werden dort gleich mitgeliefert. [link] […]
dockblog // hamburg » Blog Archive » Wordpress: Lost connection _pingme
18.03.2006
19:25 CET
[…] Wer beim publizieren von Beiträgen in Wordpress 2.01 ebenfalls von Timeouts und folgender Fehlermeldung geplagt ist, der möge hier vorbeischauen und das Problem lösen. […]
Martin Rosskothen
08.05.2006
18:25 CET
Ha! Fantastisch! Danke! :-)
colour of the soul » lange Wartezeit…
19.05.2006
16:37 CET
[…] Manchmal dauert das ja wirklich unerträglich lange und da hab ich auf der Seite von John Wrana eine Erklärung des Problems und Lösung gefunden. […]
Christian
17.07.2006
21:45 CET
Besser spät als nie: Bin soeben fast verzweifelt, weil die Veröffentlichung so lange “hing”, dass es zu einem Timeout-Problem mit dem Server meines Providers kam. Dank der Suche im Wordpress.de-Forum und Deinem Tipp hier ist der Fehler ja nun gefunden :).
problematik.net » lost connection
30.08.2006
14:37 CET
[…] noch keine kommentare zu’lost connection’ RSS feed fuer kommentare und trackback URI fuer ‘lost connection’ […]
Lustig
22.10.2006
03:46 CET
Echt super der Tip, erspart mir aufjedenfall sehr viel Zeit!! Danke!