Toon posts:

[asp.net]function word 2de x gecalled na 1st call+20 min

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een function die wordt aangeroepen vanuit een aspx page.
Dan begint de functie te werken. (is een while loop die enkele uren kan duren; is namelijk een spider).
Na 20 minuten roept hij op 1 of andere manier nog een keer die functie aan want ik krijg een error dat de logfile already in use is door een ander process.. Kan het zo zijn dat asp.net na een tijd nog gewoon een keer zelf de functie aanroept omdat hij na x minuten nog nix returned heeft?

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public void startSpiderSingleMode()
{
    string sFilename="";
    ..
    sFilename = sLogDir+"spiderLog_"+iCount.ToString()+".txt";
    if (iDebugMode) {logfile = File.CreateText(sFilename);   logfile.Flush();}
    if (iDebugMode) {logfile.WriteLine("start: "+wWebsite.getWebsiteURL()); logfile.Flush();}
    ..
    while (toDoList.Items.Count > 0 )//&& i<=1)
    {
        ..
    }
    
    if (iDebugMode) {logfile.WriteLine("end: "+wWebsite.getWebsiteURL()); logfile.Flush();}
    if (iDebugMode) logfile.Close();
    logfile = null; 
}

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

20 minuten; lijkt me er op een Session die opnieuw aangemaakt wordt.

Wil je echt maar per definitie 1 object hebben, dan kan je eens zoeken op het Singleton Design Pattern. Ik ben er echter nog niet uit hoe goed deze functioneert in een webomgeving.

[ Voor 59% gewijzigd door gorgi_19 op 02-06-2003 14:21 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • whoami
  • Registratie: December 2000
  • Laatst online: 10:17
Ik geloof dat het singleton ook in een webomgeving goed zou moeten werken.

Echter, als het idd zo is dat een sessie opnieuw gemaakt wordt, dan denk ik niet dat singleton dit probleem kan oplossen, aangezien een singleton ook maar binnen 1 sessie een singleton is.
Maw, als er een nieuwe sessie gemaakt wordt, wordt er toch ook een nieuw object gemaakt binnen die sessie. Dat object zal dan wel singleton eigenschappen hebben binnen die sessie, maar weet toch niets van objecten in andere sessies?

https://fgheysels.github.io/


Verwijderd

Topicstarter
offtopic:
gorgi_19 wordt mijn standaard problem solver ;)

Verwijderd

Topicstarter
dit object zit in de application[..] omgeving.. Maar het is idd aannemelijk dat er iets gebeurt met session ofzo -> ga eens verder deze mogelijkheid onderzoeken.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

whoami schreef op 02 June 2003 @ 14:35:
Ik geloof dat het singleton ook in een webomgeving goed zou moeten werken.

Echter, als het idd zo is dat een sessie opnieuw gemaakt wordt, dan denk ik niet dat singleton dit probleem kan oplossen, aangezien een singleton ook maar binnen 1 sessie een singleton is.
Maw, als er een nieuwe sessie gemaakt wordt, wordt er toch ook een nieuw object gemaakt binnen die sessie. Dat object zal dan wel singleton eigenschappen hebben binnen die sessie, maar weet toch niets van objecten in andere sessies?
Dat was dus wat ik mij afvroeg; kan ik een Singleton een application scope geven of heeft deze per definitie al een application scope?

Inderdaad werkt deze goed en heeft deze een session scope, wat ik op zich vreemd vindt. (Aangezien HTTP Stateless is, had deze imho dan net zo goed een context scope kunnen hebben).
Ik zou er dan ook niet verbaasd van staan als deze stiekem een application scope zou hebben.

Dit moet op zich wel mogelijk zijn door zelf iets in elkaar te knutselen, welke gebaseerd is op het Application-object. Je zult dan alleen nog moeten uitsluiten dat je application crashed.

[ Voor 14% gewijzigd door gorgi_19 op 02-06-2003 14:51 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Je zou ook een nieuwe thread kunnen starten waar je dit proces dan op start.
Als je dan een vlaggetje ergens zet kan je afvangen dat ie het proces geen 2e keer start als de aspx pagina een 2e keer geopend wordt.

Zelf gebruik ik hiervoor meestal een queued component. Langlopende aspx pagina's vind ik niet zo mooi en geven alleen maar problemen.

  • whoami
  • Registratie: December 2000
  • Laatst online: 10:17
gorgi_19 schreef op 02 June 2003 @ 14:37:
[...]

Dat was dus wat ik mij afvroeg; kan ik een Singleton een application scope geven of heeft deze per definitie al een application scope?
Zo ver had ik nog niet gedacht :D
Je zou idd een object kunnen aanmaken bij de Application Start, en dat dan als een Application variabele bewaren. Dan zou het toch wel moeten werken lijkt me....

https://fgheysels.github.io/


Verwijderd

Topicstarter
whoami schreef op 02 juni 2003 @ 14:55:
[...]

Zo ver had ik nog niet gedacht :D
Je zou idd een object kunnen aanmaken bij de Application Start, en dat dan als een Application variabele bewaren. Dan zou het toch wel moeten werken lijkt me....
Er gaat helaas nog ergens iets fout.. ik ga wat meer breakpoints neerzetten om te kijken of hij idd een nieuwe sessions of iets dergelijks afvuurt en dan misschien in die 2de session iets met de application object doet. Het is nu zo dat het iig geen singleton class is in het application object dus die mogelijkheid bestaat idd nogsteeds.
Verwijderd schreef op 02 juni 2003 @ 14:51:
Je zou ook een nieuwe thread kunnen starten waar je dit proces dan op start.
Als je dan een vlaggetje ergens zet kan je afvangen dat ie het proces geen 2e keer start als de aspx pagina een 2e keer geopend wordt.

Zelf gebruik ik hiervoor meestal een queued component. Langlopende aspx pagina's vind ik niet zo mooi en geven alleen maar problemen.
Is idd een betere oplossing denk ik jah. Het is idd mooier om de business logic dan in een echte windows component te gieten en alleen de interface in asp.net.

Verwijderd

Ik gebruik zelf ook wel een singleton maar dan om wat data op te slaan die elke user en elke aspx beschikbaar moet hebben. Singletons gebruiken om veel code mee te runnen doe ik niet. Dat had idd ook in een Application object gekund maar zo kunnen ook niet-webapplicaties van dezelfde code gebruikmaken.

Verwijderd

Ik weet niet of het werkt
maar je zou de sessions ook gewoon uit kunnen zetten
<%@ Page EnableSessionState="false" %>

Trialution
Pagina: 1