Avatar billede jokkejensen Novice
12. september 2011 - 12:07 Der er 5 kommentarer og
1 løsning

Import af data til CMS, performance

Hej.

Jeg sidder i et umbraco 4.7 miljø kendskab hertil er underordnet. Men benytter api'et til at importere/Synkronisere varer.

PT gør jeg følgende:

1: Uploader CSV fil
2: Løber alle produkterne igennem fra umbraco, her tjekkes om varen findes i ny CSV fil, hvis ikke slettes de (flyttes til en anden mappe), de varer de eksisterer ligges i et dictionary
3: Løber alle CSV rækker igennem
3.1: Findes varen i dictionary med varer fra umbraco, opdateres alle rækker i umbraco fra CSV
3.2: Findes varen ikke i dictionary, så oprettes en ny.

Mit performance problem ligger i at 3 tager evigheder da der er ca 600 varer.

Er der nogle funktioner som threading jeg kan drage fordele af, eller andet, så den for hver række i CSV ikke står og venter på at metoden til at opdatere/oprette ny vare er færdig ?

Sig til hvis der er brug for yderligere information.

På forhånd tak
Jacob
Avatar billede Syska Mester
12. september 2011 - 12:52 #1
Lyder mest af alt som om det er Umbraco, der gør tingene på en mærkelig/ikke optimal måde.

(Dette step er kun hvis du bruger SQL som DB)
Kan du eventuelt smide en SQL Profiler på, for at finde ud af om det er SQL der bliver genereret af API'et som er mindre optimal.

Er der ikke mulighed for følgende:
1) Hive alle noder ud
2) opdatere den som allerede findes. Dernæst save i en samlet transaction.
3) Alle de produkter som ikke findes i forvejen bliver nu indsat.

Eventuelt poste hvordan du i dag gør.

mvh
Avatar billede arne_v Ekspert
13. september 2011 - 01:23 #2
Det ville vaere rart at vide hvad 2-3.2 faktisk daekker over.
Avatar billede jokkejensen Novice
13. september 2011 - 11:26 #3
Ja det er ikke noget jeg er stolt af, har overtaget projectet fra en anden.. Det eneste jeg har gjort ved koden er at smide et updatepanel på, samt en timer, der løbende informere om processen, før timede den bare ud men processen forsat uden at man vidste hvad der skete.

Jeg tror umiddelbart at det der koster er at "gemme" og "publish" , hvilket der ikke tjekkes op på om det er nødvendigt, altså opdatere/gemmer/publicere den ALLE produkter, også dem uden ændringer.

Koden er som følgende:
http://pastebin.com/Yq4T3wJy

Beklager mit sene svar.

Værd obs på det kun er "foreach (DataRow row in dTable.Rows)" i metoden "uploadToUmbraco" der tager evigheder. Det var her jeg håbede man kunne få den til at processere flere "rows" af gangen.

Venligst
/J

@Arne > http://umbraco.codeplex.com/releases/view/62573 det er den "recommended" version jeg kører med (4.7), her referere jeg til cms, umbraco, interfaces og buisnesslogic assemblies.
Avatar billede jokkejensen Novice
13. september 2011 - 11:29 #4
formoder det her er nødvendigt:

<%@ Control Language="C#" AutoEventWireup="true" Inherits="SparCode.Code.ShopImport" %>

<asp:FileUpload runat="server" ID="fu_ShopImport" />
<asp:Button runat="server" OnClick="Upload_Click" ID="btn_ShopImport" Text="Importer CSV" />

<div style="border: 1px solid red;">
    <asp:UpdatePanel runat="server" ID="up_ShopImport">
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="UpdateTimer" EventName="Tick" />
        </Triggers>       
        <ContentTemplate>       
            <asp:Timer runat="server" ID="UpdateTimer" Interval="100" OnTick="UpdateTimer_Tick" />
            <%= SparCode.Code.ShopImport.CurrentStatus %>
      </ContentTemplate>
    </asp:UpdatePanel>
</div>
Avatar billede jokkejensen Novice
02. november 2011 - 14:35 #5
låger !
Avatar billede Syska Mester
02. november 2011 - 18:57 #6
låger ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester