Sub :: Slice

Split langlopende taken in beheersbare brokken
Download nu

Sub :: Slice Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • GPL
  • Prijs:
  • FREE
  • Naam uitgever:
  • BBC
  • Uitgever website:
  • http://www.bbc.co.uk

Sub :: Slice Tags


Sub :: Slice Beschrijving

Gesplitste langlopende taken in beheersbare brokken Sub :: Slice is een Perl-module die een lang proces in kleinere stukken breekt die één voor één per keer kan worden uitgevoerd via een staatloos protocol, zoals HTTP / SOAP, zodat vooruitgang kan worden gerapporteerd. Dit betekent dat de klant de voortgang kan weergeven of de werking van de bediening kan annuleren. Het werkt door de klant die een token van de server aanvraagt en het token weergeeft naar de server op elke iteratie. Het token dat is doorgegeven aan de klant bevat statusinformatie die de client kan gebruiken om te bepalen of de taak is voltooid / mislukt en om status / foutmeldingen weer te geven. Met de routine opgeroepen elke iteratie, definieert de server een set CODEEREFS, waarvan zal worden opgeroepen voor een gegeven iteratie. Bovendien kan de server CODEREFS definiëren om aan het begin en het einde van de taak te worden genoemd. De server kan de klant een schatting geven van het aantal iteraties dat de taak waarschijnlijk is. Het is mogelijk om prestaties / bruikbaarheid in balans te brengen door het aantal iteraties te wijzigen dat zal worden uitgevoerd voordat de voortgang naar de client.synopsis # client # client heeft. Stel methoden aan in de server :: Pakket worden op magische wijze mijn $ Token = Server weergegeven :: Create_token (); Voor (1 .. max_iterations) {server :: do_work ($ token); Laatste als $ Token -> {klaar}; } # Server # Stel je voor dat dit op een externe machinepakketserver bevindt; Gebruik sub :: Snijd; Sub create_token {# Maak een nieuwe taak: mijn $ Job = Nieuwe sub :: Slice (backend => 'bestandssysteem', opslag_options => {pad => '/ var / tmp / myproject /',}); retourneer $ job-> token; } sub do_work {# een bestaande taak laden: mijn $ Job = Nieuwe sub :: Slice (token => $ Token backend => 'Filesystem', opslag_options => {path => '/ var / tmp / myproject /',} ); AT_Start $ Job Sub {$ Job-> Store ('Foo', '1'); $ Job-> Winkel ('Bar', {ABC => 'DEF'}); # Opslaggegevens, initialiseren $ Job-> Set_Estimate (10); # schat aantal stappen terug ($ JOB-> FETCH ('FOO')); }; mijn $ foo = $ job-> fetch ('foo'); AT_Stage $ Job "Stage_one", sub {mijn $ bar = $ job-> fetch ('bar'); # doe dingen $ job-> next_stage ('stage_two') als $ some_condition; }; AT_Stage $ Job "Stage_Two", sub {# ... Doe meer dingen ... # Markeer taak als klaar om te worden verwijderd $ Job-> gedaan () als $ Job-> Count () == $ Job-> Schatting ( ); }; retourneer $ job-> return_value (); #Passeer een retourwaarde van CODEEREFS} Vereisten: · Perl


Sub :: Slice Gerelateerde software