[PHP][Wordpress][WP All Import] Afbeeldingen importeren

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • geert1
  • Registratie: Maart 2006
  • Laatst online: 07-07 11:04
Bij de ontwikkeling van een website voor een makelaar ben ik tegen een vrij specifiek probleem aangelopen, die te maken heeft met het importeren van veel afbeeldingen, en de verwerking daarvan in Wordpress, in combinatie met de krappe limieten en resources op een shared hosting account. Ik maak dit topic niet om een klare oplossing of voorgeschreven code, maar in de hoop dat iemand me de goede kant op kan wijzen.

Ik gebruik Wordpress in combinatie met WP All Import (een generieke XML import plugin) en Advanced Custom Fields. Ik haal eens per dag een XML-bestand met woningen op vanaf een vastgoedplatform en laat deze door WP All Import verwerken. Deze plugin maakt posts aan (en wijzigt bestaande) voor elk vastgoed-item, en vult een aantal velden zoals de titel, de tekst en een reeks custom fields met kenmerken. Dit gaat allemaal super.

Het probleem doet zich voor bij de afbeeldingen. Elk vastgoed-item (woning) bevat zo'n 20 tot 50 afbeeldingen (van meestal zo'n 800-1200px breed), waarvan de URLs meegegeven worden in de XML die binnenkomt. De afbeeldingen staan extern en moeten worden overgeladen naar de hostingomgeving en vervolgens verwerkt tot Wordpress attachments (ze worden dan ook geschaald naar verschillende formaten; de image sizes die ik gebruik in WP). WP All Import kan dit volautomatisch doen als ik de afbeeldings-URLs plaats in een custom field van het type "gallery" (aangeboden door Advanced Custom Fields). Maar: zelfs als ik de import in delen laat uitvoeren (één vastgoed-item per keer), lukt dit vaak niet om alle afbeeldingen goed binnen te halen binnen de maximale executietijd van 2 minuten. Mijn host laat het niet toe om een langere executietijd in te stellen, en WP All Import biedt niet de optie om de import verder op te knippen dan één heel vastgoed-item per keer.

Heeft iemand ervaring met deze materie en kun je tips geven over hoe zoiets het beste afgehandeld kan worden? Ik zoek een manier om zo'n 10-20 afbeeldingen te verwerken per executie, zodat mijn host er niet in zal stikken. Ik ben gevorderde met PHP (geen expert) en heb kennis van cron jobs. Heb je meer info nodig, dan hoor ik het ook graag.

Acties:
  • 0 Henk 'm!

  • Room42
  • Registratie: September 2001
  • Niet online
Niet om flauw te doen, maar waarom schiet je hier niet een ticket in bij WP All Import zelf?

"Technological advancements don't feel fun anymore because of the motivations behind so many of them." Bron


Acties:
  • 0 Henk 'm!

  • geert1
  • Registratie: Maart 2006
  • Laatst online: 07-07 11:04
Room42 schreef op zaterdag 04 april 2015 @ 15:49:
Niet om flauw te doen, maar waarom schiet je hier niet een ticket in bij WP All Import zelf?
Terechte vraag. Ik ga dat ook doen, maar vermoed dat het net wat buiten de scope van hun support ligt. Strikt gezien helpen zij alleen bij het opzetten van de import en het werken met de plugin. Mochten er zaken binnen de plugin zijn die ik kan benutten, dan zullen zij het wel aangeven. Maar ik verwacht dat ik bij dit probleem deels buiten de plugin om zal moeten werken. Daarom probeer ik het bij deze bij de Tweakers-community.

Acties:
  • 0 Henk 'm!

  • Douweegbertje
  • Registratie: Mei 2008
  • Nu online

Douweegbertje

Wat kinderachtig.. godverdomme

Ja dan zul je gewoon het script van all import moeten aanpassen.. of domweg een betere host nemen.
Bij conversies draai ik dit overigens meestal lokaal, om vervolgens alle data online te zetten. Dan heb je gewoon veel meer kracht (van uitgaande dat je iets hebt qua pc), je belast de live server niet en je hebt geen last van anale hosts.

Verder wil jij gebruik maken van allerlei standaard producten voor een toch wel 'uniek' proces. Meestal heb je dan maatwerk. Je probeert het nu voor elkaar te krijgen met allerlei plugins en dan krijg je simpelweg dit soort problemen.

Acties:
  • 0 Henk 'm!

  • ajakkes
  • Registratie: Maart 2004
  • Laatst online: 16-05 22:32

ajakkes

👑

Niet de afbeeldingen ophalen bij de import maar de linkjes zelf opslaan in apparte tabel. Vervolgens die lijst afwerken per 1, 2, of 5 foto's met een ander script. Dit script zou je kunnen aanroepen door een pagina bezoek of zelf handmatig tot die lijst weer leeg is.

👑


Acties:
  • 0 Henk 'm!

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 11-07 12:10

TheNephilim

Wtfuzzle

Met 20-50 afbeeldingen per woning zul je inderdaad zelf wat moeten maken. Verwerken moet je sowieso pér woning doen en misschien de afbeeldingen eerst lokaal opslaan, dan steeds per 5 resizen/opslaan.

Met iets als https://www.setcronjob.com/ (gezien je vast geen cron access hebt) kun je relatief betrouwbaar bijv. elke minuut (oid.) kijken of er nog wat te doen is.

Acties:
  • 0 Henk 'm!

  • Kecin
  • Registratie: Juli 2004
  • Niet online

Kecin

Je keek.

Ik zou gewoon een VPS server halen, een makelaar kan je toch prima zeggen dat die 2 tientjes per maand moet gaan betalen voor hosting? Een site is veel duurder :).
Dan kan je zelf wel je executietijd bepalen.

I am not a number, I am a free man! Geld over? Check m'n V&A


Acties:
  • 0 Henk 'm!

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 11-07 12:10

TheNephilim

Wtfuzzle

Kecin schreef op dinsdag 07 april 2015 @ 10:13:
Ik zou gewoon een VPS server halen, een makelaar kan je toch prima zeggen dat die 2 tientjes per maand moet gaan betalen voor hosting? Een site is veel duurder :).
Dan kan je zelf wel je executietijd bepalen.
Maar dan ben je ineens zelf verantwoordelijk voor de hosting; uptime, beveiliging en dergelijke. Het 'even' kun je wel weglaten, zeker als je dan ook dns/email/etc. moet verzorgen.

Acties:
  • 0 Henk 'm!

  • geert1
  • Registratie: Maart 2006
  • Laatst online: 07-07 11:04
Heel erg bedankt voor de reacties allemaal!

Ben het eens met de mensen hierboven dat het kiezen van andere hosting eigenlijk het beste zou zijn: VPN, managed VPN of iets anders, zodat je meer te zeggen hebt over de instellingen en je meer resources beschikbaar hebt.

Ook de opmerkingen dat dit eigenlijk een maatwerk-situatie is, kan ik beamen. Normaliter schrijf ik ook veel maatwerk en grijp ik alleen naar plugins in specifieke gevallen. Dit is voor mij echter zo'n geval. Het helemaal zelf schrijven van zo'n import, inclusief mapping van tientallen velden en verwerking van allerlei afbeeldingen, zou een hoop tijd kosten en zoals gezegd ben ik wel handig met programmeren, maar geen die-hard expert. WP All Import lost dit prachtig op en is in de toekomst ook in te zetten voor andere imports. Het schrijven van een eigen scriptje die de afbeeldingen los verwerkt ná de import was inderdaad een aardige optie geweest, en één die ik ook heb overwogen.

Gelukkig heb ik inmiddels een aardige work-around gevonden voor de time-out problemen bij het ophalen van vele afbeeldingen. Ik was een vinkje vergeten aan te zetten in de instellingen van WP All Import, die ervoor zorgt dat er gecontroleerd wordt of afbeeldingen al eerder binnen waren gehaald. Het aanmaken van attachments bleek telkens opnieuw te beginnen als een bepaalde woning niet compleet was binnengehaald, wat natuurlijk niet handig werkte. Nu stikt de import nog steeds wel eens, maar dan gaat hij even later weer door waar hij gebleven was. De afbeeldingen komen dan vanzelf binnen, ondanks een time-out hier en daar. Nu ik de bestaande woningen allemaal eenmaal binnen heb, gaat het in de toekomst om hooguit 1-3 nieuwe woningen per dag. Mocht elke woning drie keer voor een time-out zorgen, dan komen ze alsnog allemaal ruimschoots binnen. Dit omdat de ingestelde cron-job een flink aantal keren draait (om de drie minuten over ongeveer 1,5 uur). Zoals in de documentatie van WP All Import vermeld: Scheduling Imports Using Cron Jobs. De opdracht in de cron job is wel zo slim dat deze niks doet wanneer de import al klaar was.

Ik ben dus weer gered. Bedankt voor jullie reacties allemaal. Topic kan dicht wat mij betreft.

[ Voor 5% gewijzigd door geert1 op 07-04-2015 16:34 ]

Pagina: 1