Προς το περιεχόμενο

XML Parsing job in IIS


Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα παιδιά,

 

Υπάρχει η ανάγκη κάθε 12 ώρες μέσα στην ημέρα, να γίνεται μία ενημέρωση μίας βάσης δεδομένων, μέσω XML Parsing.

Τα αρχεία xml που πρέπει να παρσαριστούν είναι περίπου γύρω στα 150 και το καθένα δημιουργεί περίπου 20 εγγραφές στη βάση. Ποιος είναι ο καλύτερος τρόπος να γίνει αυτό σε ASP.NET (VB)?

 

Παρακαλώ πολύ θα ήθελα να είστε όσο πιο λεπτομερής γίνεται...

 

Ευχαριστώ πολύ!

Δημοσ.

Βασικά αυτό που θέλω να κάνω είναι το εξής.

 

Έχω ένα site το οποίο περιέχει και το αρχείο Global.asax.

 

Υπάρχει τρόπος μέσα στο Application_Start να βάλω κώδικα ο οποίος θα τρέχει κάθε "interval" λεπτά ασχέτως αν κάποιος χρήστης επισκέπτεται το site?

 

Εχω τον παρακάτω κώδικα και δυστυχώς γίνεται fired up μόνο στο πρώτο hit της σελίδας και μετά δεν ξαναγίνεται fired.

 

Μήπως πρέπει να ανοίξω ένα thread??

 

-========================================

Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)

 

Application("strConnect") = "Driver={SQL Server Native Client 10.0};Server=xxxxxxxxx;Database=xxxxxxxxxx;Uid=xxxxxxxxx;Pwd=xxxxxxxxxx;"

Dim timScheduledTask As New System.Timers.Timer()

'5 seconds

 

timScheduledTask.Interval = 60 * 1000

timScheduledTask.Enabled = True

timScheduledTask.Start()

Dim conobj As OdbcConnection

Dim comobj As OdbcCommand

Dim constr As String = Application("strConnect")

conobj = New OdbcConnection(constr)

conobj.Open()

Dim sqlstr As String = "INSERT INTO SHOP(shop_name, shop_url) VALUES ('a','http://a')"

comobj = New OdbcCommand(sqlstr, conobj)

comobj.ExecuteNonQuery()

conobj.Close()

 

 

End Sub

-====================================================

Δημοσ.

Οπότε εννοείς ότι η μεταβλητή timScheduledTask δεν θα χρειάζεται πλέον, εφόσον θα βάλω το επιθυμητό interval στον server (IIS στην περίπτωση τη δική μας.) Σωστά?

Εγώ όμως κάνω τακτά refresh μία οποιαδήποτε σελίδα, αλλά δεν βλέπω να κάνει ξανά fired το Application_Star. Γιατί?

 

Επίσης θα ήθελα να ρωτήσω :

 

Χρειάζεται να ξεκινάω μέσα στο Global.asax και κάποιο thread το οποίο θα μένει ανοικτό όσο κάνω εγώ τις επιθυμητές λειτουργίες του scheduler? Και αν ναι πως γίνεται αυτό?

 

Μήπως με τον κώδικα τον παρακάτω?

 

-=============================

trd = New System.Threading.Thread(New System.Threading.ThreadStart(AddressOf StartChecking))

trd.IsBackground = True

trd.Priority = System.Threading.ThreadPriority.Lowest

trd.Start()

 

'....

 

While trd.IsAlive

end while

'===============================

 

Ευχαριστώ πολύ!

Δημοσ.

Δεν γωνρίζω asp για να σε βοηθήσω παραπάνω αλλά αυτό που μπορώ να σου πω είναι ότι έχεις μια σελίδα κάπου στον server όπου κάνει Χ πράγματα.

Με ένα schedule στον server μπορείς να "καλείς" αυτή την σελίδα κάθε μέρα ας πούμε στις 3 το πρωί.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...