WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Schemalägga en spindel (https://www.wn.se/forum/showthread.php?t=30027)

majkball 2008-06-19 13:00

Hej,

Går i tankarna att implementera ett litet hobbyprojekt. Jag har dock rätt begränsad budget, och sajten kommer troligtvis inte generera någon inkomst... därför lär jag köra på något billigt webbhotell.

Huvudfunktionen kommer kretsa kring datainsamling från ca. 3-4 sajter 2 ggr dagligen (sidorna är på ca. 2 kB styck, inga större mängder alltså).

Min fråga är hur ska jag schemalägga ett sådant script? En tanke som slog mig var att vid sidträffar kicka igång ett script ifall tidsvillkoret är uppfyllt... men om min sida inte kommer ha tillräckligt hög trafik så kommer denna idé inte att funka. Någon som har något förslag.

Vidare undrar jag även vilka rekommendationer ni kan mig kring val av språk. Jag behärskar PHP, men känner mig sugen på att lära mig ASP.NET. Finns det några billiga webbhotell i prisklassen http://www.one.com som erbjuder ASP.NET stöd?

Mvh

//Mikael

digi 2008-06-19 13:05

Du kan alltid slänga ihop nått litet program som requestar ett script på servern med jämna mellanrum och låta detta köras på en dator du alltid har igång. Alternativt har du bara en sida med refresh som du öppnar i din browser.

2 fina slaskhack, finns säkert nått bättre alternativ :)

Vi har ett javaprogram för att hålla koll på utskick av sms och epost, detta just för att det är väldigt viktigt att det fungerar och uppdateringarna sker var 15e sek... tror jag det är :P

tartareandesire 2008-06-19 13:35

Binero är ju relativt billigt och tillåter Cronjobs.

dmdpageup 2008-06-19 14:03

Kan rekommendera cronjobs tillsammans med något smidigt php-script.

grazzy 2008-06-19 14:22

Bästa är helt klart att ha någon form av daemon som automatiskt pollar oftare när sidan uppdateras ofta (kan lätt implementeras mha checksummor på valda block av sidan). Dessutom kan du då ha en kö för sidor som skall spindlas och trådar som gör det parallelt. Ett cronjobb fungerar bra för mer statiska hämtningar i mindre skala.

Det går såklart även att implementera cooloff-effekten med ett cronjobb också, fast det blir lite bulkigare.

Daniel.st 2008-06-19 16:14

Har du ingen burk som mer eller mindre alltid är igång som du kan köra jobbet på som en liten konsolapplikation, en process i bakgrunden eller liknande istället för att köra det på webbservern? Ska informationen senare visas på en sida använder du exempelvis en webservice eller liknande enklare api för att ladda upp den spindlade och bearbetade informationen till den sidans databas eller liknande från jobbet som kör på den lokala burken.

I ditt fall handlar det inte om så mycket information men generellt tycker inte jag att man ska lasta webbservern med jobb som ska/kan köras i bakgrunden. Den typen av jobb ska rulla på en applikations eller job server.

emilv 2008-06-19 20:20

För datainsamling rekommenderar jag att du håller dig till PHP då du har både smidiga reguljära uttryck och API:er för XML-tolkning. Möjligen kan Ruby eller Perl vara värt att lära sig i sammanhanget men ASP.NET känns som ett steg tillbaka.

Citat:

Originally posted by Daniel.st@Jun 19 2008, 16:14

I ditt fall handlar det inte om så mycket information men generellt tycker inte jag att man ska lasta webbservern med jobb som ska/kan köras i bakgrunden. Den typen av jobb ska rulla på en applikations eller job server.

På Levonline kör vi kunders cronjob (och SSH) på andra maskiner än webbservrarna. Jag tvivlar på att det finns särskilt många delade webbhotell som tillåter SSH-inloggning till webbservermaskinerna.

etanders 2008-06-19 21:32

Inte meningen att starta (ännu ett) php/ASP.NET-krig B) ...men reguljära uttryck och xml-tolkning finns väl för de flesta språk?

Kan bara inte se varför det skulle vara ett steg tillbaka för majkball att ta tillfället att lära sig ASP.NET genom detta hobbyprojekt om han är sugen på det och redan behärskar php.

Hos exempelvis Binero kan du få windowskonto för ASP.NET.

dmdpageup 2008-06-19 22:26

Citat:

Ursprungligen postat av emilv
För datainsamling rekommenderar jag att du håller dig till PHP då du har både smidiga reguljära uttryck och API:er för XML-tolkning. Möjligen kan Ruby eller Perl vara värt att lära sig i sammanhanget men ASP.NET känns som ett steg tillbaka.

Citat:

Ursprungligen postat av Daniel.st
I ditt fall handlar det inte om så mycket information men generellt tycker inte jag att man ska lasta webbservern med jobb som ska/kan köras i bakgrunden. Den typen av jobb ska rulla på en applikations eller job server.

På Levonline kör vi kunders cronjob (och SSH) på andra maskiner än webbservrarna. Jag tvivlar på att det finns särskilt många delade webbhotell som tillåter SSH-inloggning till webbservermaskinerna.

Vi erbjuder cronjobs men inte SSH-access. Kanske skall särskilja det för tydlighetens skull ?
Man kan alltså erbjuda cronjobsfunktioner utan att för den sakens skull ge användaren full SSH-access.

Sen tycker jag absolut du kan köra det hela på webbhotellet och inte via egen server då det handlar om så lite information samt att det är ett hobbyprojekt.

Daniel.st 2008-06-19 23:43

Citat:

Originally posted by emilv@Jun 19 2008, 20:20
För datainsamling rekommenderar jag att du håller dig till PHP då du har både smidiga reguljära uttryck och API:er för XML-tolkning. Möjligen kan Ruby eller Perl vara värt att lära sig i sammanhanget men ASP.NET känns som ett steg tillbaka.
Låter inte riktigt som att du jobbat så mycket med .NET :) Kan man .NET finns det snarare stora fördelar genom att man till stor del kan använda samma språk och bibliotek oavsett av vilken typ av applikation man ska bygga. Vill man ha en webbsida på en webbserver och en applikation för spindeln som snurrar på en jobbserver kan man använda samma klasser och metoder vilket gör att man sparar tid och får enklare att hålla ihop hela lösningen. XML och regex är en så naturlig del av .NET som något kan bli. Dessutom har du trådhantering vilket jag inte tror finns i PHP (rätta mig gärna om jag har fel) vilket kan ge stora vinster om det handlar om en större variant av en spindel.

Jag har byggt ett par specifika spindlar och det har fungerat utmärkt att bygga i .NET och C# :)

Majball, om du funderar på att använda .NET kan jag rekommendera Html Agility Pack där du kan jobba med ett html dokument på samma sätt som ett xml dokument på ett grymt smidigt sätt och mer eller mindre använda en variant av xpath för att lokalisera element i ett html dokument.


Alla tider är GMT +2. Klockan är nu 05:47.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson