Kategorie: Artikel

Oauth / Twitter Auth Adapter für Zend Framework

Mit , Samstag 23. April 2011 15.57 Uhr

Die Arbeit geht weiter (langsam) auf meinem neuen Twitter -basierte Anwendung. In den nächsten paar Feiertagen Ich hoffe, den Schwung wieder auf das Projekt (in-trotz des wunderbaren Wetters derzeit) zu bekommen. Jedenfalls war meine nächste Aufgabe an einen Authentifizierungs-Adapter für die zu schaffen Zend Framework . Ich hatte eine Arbeitsgruppe anmelden Umsetzung, aber mit einem Rückgang der Auth-Adapter für Zend Framework schien wie ein attraktiver Vorschlag, so habe ich es geschafft ....

(Ich werde nicht zu durchlaufen Oauth oder registrieren Sie Ihre Bewerbung mit twitter, es gibt Hunderte von Führer und seine ein ziemlich einfacher Prozess sowieso.)
Continue reading 'Oauth / Twitter Auth Adapter für Zend Framework' »

"Mit Twitter Sign" mit Zend Framework

Mit , Donnerstag 17. März 2011 01.07 Uhr

Trotz aller twitter hassen in dem Moment, habe ich, um ein neues Set twitter -basierte Anwendung. Als jemand, der mehrere Konten verwaltet (sowohl persönlich als auch für meine Charity-Arbeit) Ich habe benötigen ein Werkzeug für irgendwann, dass ich nur die Fortbewegung zu schreiben (mehr von, dass in naher Zukunft ...).

Ich habe bis auf Lesen Zend_Oauth_Consumer und wie sie verwendet werden, um Genehmigung für die Interaktion mit twitter mit bekommen oauth . Alles schön und gut, ich habe meinen Zugangscode und ich kann fröhlich weg post auf einer Benutzer-Namen. Es gibt jede Menge von Ressourcen gibt, um dies zu tun, damit ich will Sie nicht langweilen Menschen.

Der nächste Schritt war, damit die Menschen auf die Website zurückkehren, melden Sie sich an und ändern ihr Konto. Dies ist, wo ich ein kleines Problem erreicht. Mit dem Code-Beispiele auf Webseiten bedeutete, dass ich hätte twitter mich fragen, für Zugriffsberechtigung wieder für jede Anmeldung, nicht gut. Scanning durch die Rahmen, den ich nicht sehen konnte, alles, was mir erlauben, nur die Authentifizierung anfordern würde. Das heißt nicht, es ist nicht dort zu sagen, aber es schien nicht ein Authentifizierungsmechanismus, ohne zu wissen, die Zugangs-Token bereits aufgerufen werden konnte.

Die Alternativen waren zu einer Website-basierten einloggen oder irgendwie speichern die Benutzer-Zugangs-Token auf dem Client (verschlüsselte natürlich) zu implementieren. Keines dieser schien mir eine gute / passende Lösung.

Continue reading '"Anmeldung mit Twitter" mit Zend Framework' »

Zend Certified Engineer (ZCE) 5,3

Mit , Donnerstag 30. September 2010 09.00 Uhr

Mit dem offiziellen Release des Zend Certified Engineer (ZCE) Programm für 5,3 Ich dachte, ich würde meine schnellen Eindruck von dem, was ich dachte, der Prüfung zu geben.

Ein wenig Hintergrund über mich: Ich wurde zum ersten Mal eingeführt PHP vor etwa 7 Jahren und haben professionell in PHP seit 2006. Ich momentan für einen spannenden Start-up namens Arbeit Brightpearl in Basis Bristol, UK , Herstellung von integrierten CRM, Buchhaltung und E-Commerce-Software. Ich habe bisher nicht alle bisherigen ZCE Qualifikationen erhalten. Ich derzeit in der 5.2.x-Serie zu entwickeln und haben nicht wirklich eine der spezifischen 5.3 Merkmale (ich warte verwendet Zend Framework 2 und Lehre 2) in meiner Entwicklungsprojekte.
Continue reading 'Zend Certified Engineer (ZCE) 5,3' »

Quick Start Symfony DI (Dependency Injection) Tutorial

Mit , Samstag 14. August 2010 14.21 Uhr

Was ist Dependency Injection (DI)?

Dependency Injection ist eine Technik, die für lose gekoppelte Objekte innerhalb einer Software-Anwendung ermöglicht. Im Allgemeinen, wenn ein Objekt erfordert den Zugriff auf die Funktionalität eines anderen es instanziiert intern was zu eng gekoppelten Systemen werden würde. Durch die Implementierung von Dependency Injection spritzen wir die benötigten Objekte einsatzbereit (manchmal auch Inversion of Control genannt - IOC). Nehmen wir folgendes Beispiel:

  <? Php
 Klasse DecisionMaker {
     public function makeDecision (array $ parameters) {
         / / Benötigen Sie die Datenbank-Adapter
         $ Dp = new DecisionParameters ();
         $ ParameterScore = $ dp-> getScore ($ parameters);
         / * ...  Einige weitere Entscheidung Logik ...  * /
         return ($ parameterScore> 50);
     }
 } 

Dieses Stück Code soll eng mit dem DecisionParameters Objekt gekoppelt werden. Umschreiben der oben in einer lose gekoppelten Mode würden wir so etwas wie haben ....

 <Php class DecisionMaker {private $ _DP;? Public function __construct ($ dp) {$ this-> _DP = $ dp;} public function makeDecision (array $ parameters) {$ parameterScore = $ this-> _DP-> getScore ($ Parameter); / * ...  Einige weitere Entscheidung Logik ...  * / Return ($ parameterScore> 50);}} 

Während gewinnen die Vorteile von lose gekoppelten Code, den wir zusätzliche Komplexität, so dass jedes Mal, wenn ein Objekt instanziiert wird müssen wir auch ihre Abhängigkeiten zu instanziieren und geben diese in zu werden. Zum Beispiel diese:

  $ Auswahl = new DecisionMaker ();
 echo $ choice-> makeDecision (array ('Mühe' => 'low', 'return' => 'high')); 

wird jetzt:

  $ Dp = new DecisionParameters ();
 $ Auswahl = new DecisionMaker ($ dp);
 echo $ choice-> makeDecision (array ('Mühe' => 'low', 'return' => 'high')); 

Diese Situation wird noch schmerzhafter als die Zahl der Abhängigkeiten für eine Klasse erhöht wird, und was ist, wenn die Abhängigkeiten selbst Abhängigkeiten? Dies kann sehr schnell ein Objekt Verwaltung Alptraum werden! Geben Sie Dependency Injection Container (oder Rahmen) ...
Continue reading 'Quick Start Symfony DI (Dependency Injection) Tutorial' »

Naked Zend_Layout und Zend_View

Mit , Dienstag 10. August 2010 23.47 Uhr

In diesem Artikel werde ich, wie Sie mit Zend_Layout und Zend_View zusammen mit einem einfachen Front Controller zu zeigen, wie es möglich ist, beginnen die Trennung von Geschäftslogik und Präsentation in Ihrer Anwendung. Der gesamte Code ist auf github:
Naked Zend_Layout und Zend_View auf GitHub .

Continue reading 'Naked Zend_Layout und Zend_View' »

Zend Framework pro Modul Layout-Einstellungen - Follow Up

Mit , Dienstag 16. Februar 2010 08.48 Uhr

Als Follow-up zu meinem vorherigen Post auf pro Modul basiertes Layout-Einstellungen für Zend Framework , ich habe den Code zu verlangen, aktualisiert weniger Konfiguration dann vor (nicht, dass es notwendig mehr als ein paar Zeilen in Ihre Applikation Konfiguration!).
Continue reading 'Zend Framework pro Modul Layout-Einstellungen - Follow Up' »

Erstellen URL in Zend Custom View Helper

Mit , Donnerstag 28. Januar 2010 23.01 Uhr

Das mag einfach erscheinen, aber ich war schlug meinen Kopf versucht, eine URL in eine benutzerdefinierte Ansicht erstellen Helfer in Zend Framework . Ich habe Routing Setup, das Modul wird aus der Sub-Domain im Einsatz, so konnte ich nicht mit einem einfachen hardcoded URL.

Continue reading 'Erstellen URL in Zend Custom View Helper' »

Route Anfragen für sitemap.xml benutzerdefinierte controller / action

Mit , Mittwoch 6. Januar 2010 00.13 Uhr

Um den direkten Anfragen / sitemap.xml , um eine benutzerdefinierte Controller und die Aktion in Ihrem Zend Framework -Anwendung fügen Sie einfach den folgenden in Ihrem application.ini oder alternative Konfigurationsdatei (zB ich navigation.ini):

 resources.router.routes.sitemap.route = "sitemap.xml"
 resources.router.routes.sitemap.defaults.controller = Index
 resources.router.routes.sitemap.defaults.action = sitemap

Beispiel-Code für die Ausgabe kann durch die Schaffung einer Aktion in den entsprechenden Controller (zB meine sitemap liegt in der Index-Controller, sitemap action) zu sehen:

 < php
 Klasse IndexController
     erstreckt Zend_Controller_Action
 {
     / **
      * Renders eine Sitemap auf Zend_Navigation Setup basiert
      * /
     public function sitemapAction ()
     {
    	 echo $ this-> view-> navigation () -> sitemap ();
    	 $ This-> view-> layout () -> disableLayout ();
    	 $ This-> _helper-> viewRenderer-> setNoRender (true);
     }
 }

Sitemaps schnell und einfach erzeugen, indem Sie Zend_Navigation , ist ein großer kurze Einführung (und in der Regel sehr nützlich für Zend Framework Tutorials) Zend Casts - dynamisch erstellen ein Menü eine Sitemap und Paniermehl .

Office-Grid Computing mit virtuellen Umgebungen - Teil 4

Mit , Freitag 4. Dezember 2009 11.59 Uhr

Einführung

Ich arbeite in einer Firma, wo wir laufen viele Batch-Jobs Verarbeitung von Millionen von Datensätzen der Daten jeden Tag und ich habe vor kurzem Nachdenken über all die Maschinen, um jeden zu sitzen und jeden Tag nichts zu tun für mehrere Stunden. Wäre es nicht gut, wenn wir diese Maschinen benutzen konnte, um die Rechenleistung der Systeme zu stärken? In dieser Reihe von Artikeln werde ich auf die potenziellen Vorteile der Verwendung eines Büro-Look Gitter mit virtualisierten Umgebungen.

In Teil 3 haben wir unsere virtuelle Maschine und Einrichten von Windows-Maschinen auf Leerlauf-Beschäftigten geworden.

Ausführen der neuesten Code

Zwangsläufig nach dem Erstellen Ihrer Mitarbeiter Geschäftslogik wird sich ändern, Fehler gefunden wird, wird schneller und effizienter Code erzeugt somit Verlassen Ihres Arbeiter saßen die Verarbeitung von Daten mit Hilfe werden alte stinkende Code . Wie also können wir sicherstellen, dass wir immer die neueste und beste Version von unserer Verarbeitung Skripte?

Es gibt ein paar sehr einfach einfache Möglichkeiten, wie wir dies tun konnte, der Trick ist aber, Rechenleistung und Netzwerk-Traffic bei der Erreichung dieses zu reduzieren. Fangen wir mit der einfachsten Lösungen und verbessern sie langsam über ein paar Iterationen.

Die erste Methode wäre, einfach zu unserem Job Control Server (über Samba-, FTP o.ä.) zu verbinden und ziehen Sie die neueste Version des Codes. Nicht sehr effizient, aber es wird die Arbeit zu tun. Lets verbessern, dass etwas, wie zum Erstellen eines rsync-Skript und die Verwendung dieser jedes Mal statt? Alternativ, was darum, unsere neuesten Verarbeitung Skript in Subversion auschecken den Code zunächst und dann einfach aktualisieren unseren Code auf jedem Lauf ( svn update )?

Am Ende konnten wir am Ende mit einem Bash-Skript (genannt von cron alle 10 Minuten), die so einfach wie folgt aussieht:

  #! / Bin / sh
 wenn ps ax | grep-v grep | grep php > / dev / null
 dann
     echo "Job gerade bearbeitet, Ausfahrt"
 sonst
     echo "Job nicht läuft, jetzt beginnen"
     cd / path / to / working / Kopie
     svn update
     php yourJobProcessingScript.php
 fi 

Jetzt können wir sicher sein, dass mit jedem Lauf sind wir definitiv mit der neuesten Code. Wir gewährleisten dies durch die Aktualisierung unserer Codebasis jedes Mal führen wir einen Lauf und reduziert den Netzwerkverkehr, indem nur die Übertragung der Datei Unterschiede in unserem Netzwerk.

In meiner Demo-Setup, ich habe genau wie oben. Subversion wurde auf meinen Job Processing Server installiert und ich zog einfach den neuesten Code von einem "Arbeitnehmer" Zweig mit 'svn update'. Ich habe auch eine Versionsnummer Tag, meine Verarbeitung Skript, das auf die Datenbank als Teil der Ergebnisse zurückgeben zurückgegeben wurde. Auf diese Weise konnte ich sehen, dass mein Code Wesen war jedes Mal wenn ich kopiert meinen Koffer in den Arbeitsprozess Filiale dh, dass ich auf jeden Fall die neueste Verarbeitung Skript aktualisiert.

Unter Verwendung der neuesten Daten

Wenn Ihr Job-Verarbeitung nutzt Datenquellen dann irgendwann diese werde auch aktualisiert werden. Sofern Sie rufen Ihre Datenquellen auf einer sehr unregelmäßigen Abständen wirst du zu Ihrem Netzwerk mit dem Verkehr so ​​schnell wie Ihre Mitarbeiter Anlauf brachte alles zum Stillstand Flut sind. Für meine Lösung entschied ich mich, dass ich möchte meine Datenquellen bewegen mit meiner VMs.

Halten Sie Pferde gibt! Was passiert, wenn meine Datenquellen sind riesig? Gut, das ist wirklich ein Fall von, wie viele Daten sprechen wir? Es kann kostengünstiger sein, eine zusätzliche größere Festplatte in jedem Rechner zu installieren, als einen zusätzlichen Verarbeitungsschritt Server erwerben. Dies ist eine Frage des Budgets und setzt sich für das Unternehmen zu entscheiden. Es ist vielleicht, dass Ihre Daten Quellen sind so groß, dass seine nur machbar, dass die Datenmenge in Ihrem Arbeitscomputer zu halten. In diesem Fall, was würden Sie tun? Nun konnten wir bei Aufruf eines lokalen Daten-Server aussehen, aber das könnte Probleme mit dem Netzwerk verursachen. In diesem Fall wird ein Grid-System, wie dies unrealistisch geworden, um in Ihre Büroumgebung gehören. Es kann auch sein, dass Sie in alternative Strategien laufen Look sind zum Beispiel nur fordern Ihre Mitarbeiter von 20.00 bis 06.00 pro Nacht und / oder Drosseln Datenquelle Zugriffe.

Umzug auf sagen wir unseren Datenquellen Betrag zu 100 GB Daten. Nun ja, das ist schon ein bisschen von Daten an das Netzwerk auf ein Update zu bewegen. Wie würden wir sicher, dass wir die aktuellste Kopie der Daten haben in diesem Fall? Rsync ist eine Möglichkeit, aber ich persönlich denke, indem Sie Ihre neuesten Datenquelle auf Ihren Job Processing Server und diesen Vorgang als ein Meister in der Replikation (mit einem schönen langen bin log) könnte der Weg zu gehen:

Replikation Durch die Einstellung jeder Ihrer Mitarbeiter als ein Sklave der Job-Steuerung Server Updates für Ihre Datenquellen wird Trickle-Down schön, um Ihre Mitarbeiter ohne einen enormen Zuwachs an Netzwerk-Aktivität (das heißt, wenn Sie einen riesigen Daten zu aktualisieren, und führen Sie alle Ihre Mitarbeiter kick in auf einmal). Dies hat Vorteile gegenüber rsync in die Sie nicht bekommen eine lange Pause vor jedem Job würde, als die Datenbank-Updates, die mysql -Daemon auf Ihrer Mitarbeiter wird ständig aktualisiert seine Daten während der Verarbeitung fortgesetzt wird.

Dies ist, wie ich eingerichtet meiner Demonstration Server. Zum Einrichten der Replikation Ich folgte die Führung auf der MySQL-Website ( Einrichten der Replikation ) und innerhalb von 20 Minuten hatte ich meinen inital Arbeiter Replikation der Job-Control-Server-Dataset. Für jede weitere Arbeiter der Replikation Einstellungen und Verfahren gearbeitet jedes Mal, wenn die VM kopiert wurde.

Zusammenfassung

In diesem Abschnitt des Artikels haben wir, wie einfach und schmerzlos ist es, Ihre Verarbeitung Code auf dem Laufenden halten, indem using rsync oder subverion (SVN), um die Arbeit zu tun und den Netzwerkverkehr zu reduzieren gleichzeitig time.A ausgesehen haben wir auch diskutiert, wie Ihre Datenquelle Informationen up-to-date, indem man es rieseln zu jedem Ihrer Mitarbeiter zu halten. So haben wir Raum dafür, dass wir immer mit Geschäftslogik und Informationen in unserem Büro Grid-System. Es wird offensichtlich unzählige Alternativen zu diesen Aufgaben, aber hier waren zwei einfache Beispiele, um zu zeigen, wie einfach eine Lösung zu bekommen ist.

Nächstes Mal

Im letzten Teil dieser Serie, treffend benannt Teil 5 , besprechen wir den Einsatz dieses Systems für. Ich werde zusammen, was gelernt wurde und was ich damit geschaffen.

Office-Grid Computing mit virtuellen Umgebungen - Teil 3

Mit , Freitag 4. Dezember 2009 23.37 Uhr

Einführung

Ich arbeite in einer Firma, wo wir laufen viele Batch-Jobs Verarbeitung von Millionen von Datensätzen der Daten jeden Tag und ich habe vor kurzem Nachdenken über all die Maschinen, um jeden zu sitzen und jeden Tag nichts zu tun für mehrere Stunden. Wäre es nicht gut, wenn wir diese Maschinen benutzen konnte, um die Rechenleistung der Systeme zu stärken? In dieser Reihe von Artikeln werde ich auf die potenziellen Vorteile der Verwendung eines Büro-Look Gitter mit virtualisierten Umgebungen.

In Teil 2 haben wir uns die Arbeitsplätze einen Server ausgeführt wird, und wie Arbeitsplätze sollten so konfiguriert werden, um größte Menge der Verarbeitung gleichzeitig sicherzustellen, dass jeder Auftrag ohne Fehler verarbeitet zu erreichen.

Einrichten des Arbeitnehmers - oder LIMP-Server

Der nächste Schritt in diesem Prozess ist die Einrichtung Ihrer virtuellen Arbeiter. Aus diesem werde ich eine Installation von CentOS mit VirtualBox nutzen. Ich werde zu installieren mySQL und PHP auf dem Server, der auch als ein Hinken (Li nux, m ySQL, P HP) Servera (ich kann aus diesen Namen bis sein) bekannt.

  • Installieren von VirtualBox auf Ihrem Windows-Rechner (Link folgen)
  • Downloaden und installieren Sie CentOS (aktuelle Version 5.3) in einem erstellte virtuelle Maschine

Es macht keinen Sinn mich werde diesen gibt es wahrscheinlich 1000 's der großen Tutorials gibt (ok, hier ist einer: Erstellen und Managing CentOS virtuelle Maschine unter VirtualBox ). Der wichtige Punkt zu beachten, Ich nehme an, dass ich meine virtuelle Maschine GridMachine genannt.

Soweit meine Entscheidungen der Virtualisierung Client und Betriebssystem zu gehen gibt es keine großen zwingenden Grund für jede Wahl. VirtualBox ist etwas, das ich den Einsatz auf meinem Rechner zu Hause und wird von den drei großen Betriebssystemen unterstützt. Ich entschied mich für CentOS als eine gute stabile OS und ich benutze es auf meinem eigenen Web-Server. Ich bin ein großer Anhänger in die richtigen Werkzeuge für den Job (obwohl ich die Anwendung bin "die schnellste und einfachste für Sie"-Mentalität hier), so dass, wenn Betriebssystem X läuft der Code schneller und effizienter, dass stattdessen:)

Wichtig ist sicher, dass Ihr VM DHCP verwendet, ansonsten für jeden neuen virtuellen Maschine müsste separat konfiguriert werden, die wir so nicht want.By nicht über DHCP brauchen wir nicht zu Netzwerk-Einstellungen individuell konfigurieren für Arbeiter Maschinen, wird DHCP Hand out IPs für Sie. Daher können Sie Ihre virtuelle Maschine über das Büro, ohne sich Gedanken über die Einstellung jedes up (das verbessert die Skalierbarkeit und reduziert die Arbeiter Verwaltung) zu kopieren.

Der Prozess, den Sie erreichen wollen sollte wäre es, einen neuen physischen Maschine zu erhalten, installieren Sie VirtualBox und dann ziemlich viel Einsatz das virtuelle Bild ohne viel anderes. Es könnte sinnvoll sein, alle Ihre Mitarbeiter in einem anderen Subnetz Setup so, dass Sie mindestens sehen, wie viele Maschinen laufen. Außerdem benötigen Sie, um Ihre Maschinen auf einem Erbpacht-oder unbegrenzten Lease DHCP.

Wie Jobs auf den Arbeiter laufen

Dies ist ein interessantes Gebiet und es gibt mehrere gültige Methoden für die Verarbeitung von Jobs auf den Arbeiter. Hier werde ich nur diskutieren die beiden auf der Hand:

  • Ständig laufende Skript: Ein Skript, sei es ein Shell-Skript oder ein PHP-Skript wird einmal auf den Arbeiter ausgeführt und wird als Teil einer unendlichen Schleife. Ich habe diese Methode als eine Absturz des Skripts abgezinst und möglicherweise Ihre Mitarbeiter werden nicht mehr ohne irgendeine Art von Intervention führen.
  • Cron basiertes Skript-Ausführung: alle X Minuten die cron-Daemon startet einen Aufruf an das Skript um Dinge geht. Ohne eine Prüfung könnte dies zu viele, viele Kopien Ihrer Mitarbeiter script läuft führen.

Meine Entscheidung war es, mit cron die angepfiffen ein Shell-Skript alle 10 minutes. My Shell-Skript führt die folgenden Aufgaben gehen:

  1. Holen Sie sich ein Prozess-Liste und grep dies für 'php'. Wenn nicht gefunden, dann fortsetzen.
  2. Rufen Sie Ihre Job-Code, in meinem Fall wäre dies etwas PHP basieren
  3. Worker-Skript beendet seinen Lauf
  4. Ready to go wieder auf die nächste gewünschte Anruf

Meine Bash-Skript sieht ungefähr wie folgt aus:

  #! / Bin / sh
 wenn ps ax | grep-v grep | grep php> / dev / null
 dann
     echo "Job gerade bearbeitet, Ausfahrt"
 sonst
     echo "Job nicht läuft, jetzt beginnen"
     php yourJobProcessingScript.php
 fi 

Hinweis: das Echo ist fast völlig sinnlos, sondern kann die nächste Person, die zusammen kommt, um zu versuchen und zu bearbeiten ihnen zu helfen.

Damit ist die Einrichtung des Arbeitnehmers virtuellen Maschine, schnelle, einfache und leicht zu jedem neuen Stück Hardware, das empfangen zu kopieren. Die "Klugheit" des Netzes ist wirklich nicht in der visualisierten OS, seine alle mit dem Code erstellt, um Arbeitsplätze, die Job-Konfiguration und in dafür sorgen, dass die Arbeit bei Bedarf läuft (dh, wenn der Host inaktiv ist Prozess zu tun ).

Einrichten von Windows zu Workers initialisieren

Die erste Aufgabe ist die Erarbeitung der Befehl erforderlich, um die virtuelle Maschine aus der Windows-Kommandozeile ausgeführt werden. Wenn Sie VirtualBox in der Standard-Speicherort installiert haben und Sie haben Ihre Mitarbeiter GridMachine benannt dann den Befehl Berechnungen Ihre Arbeitnehmer:

  "C: \ Program Files \ Sun \ VirtualBox \ VBoxManage.exe" startvm GridMachine 

Allerdings, um das Skript in eine "kopflose" Zustand, den wir verwenden müssen ausgeführt werden:

  "C: \ Program Files \ Sun \ VirtualBox \ VBoxHeadless.exe"-startvm GridMachine - VRDP = off 

Dadurch wird die virtuelle Maschine ohne GUI zu starten und ermöglichen es, festzustellen, anmutig zu speichern. Das zweite Argument schaltet RDP so dass es keinen Konflikt mit Windows RDP, oder geben Sie eine Meldung über lauscht auf Port 3389 ein. Der Name der virtuellen Maschine ist Groß-und Kleinschreibung!

Als nächstes müssen wir Fenster einzurichten, um kick off unserer Arbeiter VM, wenn die Maschine im Leerlauf war. Um dies zu tun (unter Windows XP) müssen Sie auf Start gehen -> Alle Programme -> Zubehör -> Systemprogramme -> Geplante Tasks wie folgt:

geplante Tasks

Anschließend klicken Sie auf "Geplanten Task hinzufügen" durchsuchen, um ein benutzerdefiniertes Programm add gefolgt. Navigieren Sie zu Ihrem VBoxManage Skript, und klicken Sie auf OK. Planen Sie Ihre Aufgabe für eine der Optionen (wir werden das in einer Minute ändern) und weiter. Nach dem Überspringen der nächsten Bildschirmfenster werden Sie fragen, wer Ihnen diese Aufgabe ausführen möchten, würde ich vorschlagen, entweder 'Administrator' oder Erstellen eines neuen privilegierter Benutzer. Denken Sie daran, wir wollen nicht mit den Standard-Personal-Account auf der Maschine zu jedem Zeitpunkt eingreifen. Klicken Sie auf Weiter und überprüfen show advanced options für diese Aufgabe.

Um das Ende des Laufs Textfeld hinzuzufügen unser "startvm GridMachine 'string und sicherzustellen, dass nur ausgeführt, wenn eingeloggt ist links unticked. Besuchen Sie den Zeitplan Aufgabe nächsten und den Zeitplan ändern Drop-Down, um die Option "im Leerlauf", wählen Sie die Zeit, die dir die Maschine zu sein, bevor er zur nächsten Registerkarte im Leerlauf hatte.

Schließlich deaktivieren Sie die Option, die Aufgabe beenden, wenn es läuft schon X Zeitspanne Staaten, aber die Möglichkeit, die Aufgabe zu stoppen ankreuzen, wenn die Maschine nicht mehr im Leerlauf.

Zeitplan

Das war es dann für die Windows-Host-Setup!

Zusammenfassung

In diesem Teil haben wir eine virtuelle Maschine als Arbeitnehmer, als auch die Art und Weise, in der wir aufrufen und ausführen unserer Job-Verarbeitung Skripte (für mich ein PHP-Skript) fungieren können. Von hier aus schauen wir uns, wie Sie unsere Kopien von Windows zu starten der virtuellen Maschine in kopflosen Modus, wenn der Computer im Leerlauf befindet, und speichern ihren Zustand, wenn der Benutzer wieder Verwendung der Maschine. Hoffentlich an dieser Stelle die Sie sehen, wie einfach es ist, richten Sie ein solches System und sind Juckreiz, um einige Experimente gehen Sie selbst!

Nächstes Mal

In Teil 4 werden wir im Umgang mit Werkzeugen, um sicherzustellen, dass Sie die aktuellste Version des Codes und Datenquellen, so dass erzielten Ergebnisse sind immer up-to-date mit den neuesten Geschäftsinformationen und Logik zu suchen.













Panorama Theme by Themocracy

9 Besucher jetzt online
8 Personen, 1 Bots, 0 Mitglieder
Max Besucher heute: 16 um 02:02 UTC
Diesen Monat: 16 am 2011.01.09 02.02 UTC
Dieses Jahr: 130 am 28-03-2011 10.40 UTC
Insgesamt: 130 am 28-03-2011 22.40 UTC