Brug php til at indstille cron job i Windows

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg leder efter en måde at sætte cron job ved hjælp af PHP. Alt jeg gerne vil gøre er at køre et PHP script på et bestemt tidspunkt. Brugeren indtaster først en tid i et script, ifølge den angivne tid serverer serveren scriptet. Jeg bruger Windows 7 og xampp.


Hvad jeg har fundet er:



  1. Opret en php-fil, der kalder cron.php-filen: Brug notesblok (eller hvad som helst), indsæt følgende i en ny fil:
        $ data=file ('http://pearl.supplychain.com/cron.php');
        skal du sætte det inde i de almindelige php tags med 'mindre end tegn'? php på forsiden, og? 'Større end tegn' i slutningen. (Jeg kan ikke synes at skrive det bare fordi det er 'mistænkeligt indhold' og drupal tillader det ikke)
        Gem det som executecron.php, i samme mappe som cron.php (htdocs).

  2. Opret en planlagt opgave, der kalder dette regelmæssigt:



    1. Åbn Start-Alle programmer-Tilbehør-Systemværktøjer-Planlagte opgaver.

    2. Dobbeltklik på planlagte opgaver.

    3. Konfigurer en daglig opgave, der starter kl. 12:00 og løber hver halve time (eller hvad) indtil kl. 2359. Fortæl opgaven at 'køre' følgende:


      C:cmsxamppphpphp.exe c:cmsxampphtdocsexecutecron.php
      


      (På dette system er php.exe installeret i C: \ cms \ xampp \ php, men du skal sandsynligvis ændre stien).




Som du kan se for at gøre dette skal man Open Start–All Programs–Accessories–System tools–Scheduled tasks.


Kan det specifikt ved php kode eller ved hjælp af en anden måde at gøre dette? Fordi jeg vil have alt arbejde udført på php/server i stedet for at bruge min bruger config cron job selv. Hvilket betyder, at jeg vil have min php kode kan indstille cronen i serveren og serveren vil se på cronen?


Til stefgosselin:



  At oprette batchfilen


Open Notepad.
Paste the line "C:xamppphpphp.exe C:wampwwwindex.php"
Click "File" -> "Save As"
Ensure "Save as type:" is set to "All Files"
Save the file as "cron.bat" to your C drive

  
  At planlægge batchfilen til at køre


Open Command Prompt
Paste the following "schtasks /create /sc minute /mo 20 /tn "PHP Cron Job" /tr C:cron.bat"
Press Enter
This will make the script run every 20 minutes, the first time 20 minutes from now.



Jeg er i stand til at oprette en bad fil ved hjælp af php, men er der nogen måde at Paste the following "schtasks /create /sc minute /mo 20 /tn "PHP Cron Job" /tr C:cron.bat
bruger php i stedet for at bruge os? tak skal du have


tak skal du have

Bedste reference


Jeg fandt mit svar på det spørgsmål på waytocode.com


De giver 3 mulige løsninger til at køre cron-job på Windows:


Solution-1 ved hjælp af Opgaveplanlægger


I din Windows 7/Windows 2005/2008.


Gå til Startmenu-> Alle programmer-> Tilbehør-> Systemværktøjer-> Opgaveplanlægning-> Opret opgave


I det nye vindue:



  1. Generelt (Giv opgavens navn og til test kan du vælge 'Kør, når bruger er logget ind')

  2. Trigger (Du kan vælge løbende interval som 'dagligt, ugentligt, månedligt'.)

  3. Handling (Dette er den vigtigste del. Vælg en Mozilla Firefox som 'Program/script' og i Argumentet giver URL'en til brand med Mozilla Firefox).



Solution-2 ved hjælp af Opgaveplanlægning og PHP fra din XAMPP-server


I Windows Xp behøver du ikke at kopiere eller installere noget (allerede PHP er installeret på serveren som XAMPP)


Gå til Opgaveplanlægger


Opret en opgave, giv Kør tid, derefter i avanceret indstilling i kommandotype 'RUN'


C:xamppphpphp.exe -f c:/xampp/htdocs/waytocode/mycron.php


I Windows 7/Server 2005/2008


Du behøver ikke kopiere eller installere noget (allerede PHP er installeret på serveren)


Opret en opgave, giv Kør tid i Trigger-indstillingen. Derefter aktiveres indstilling af indstilling i kommandotekst typen 'Program/script'


C:xamppphpphp.exe


og i 'Add arguments (optional)' type


-f c:/xampp/htdocs/mycron.php


Solution-3 installer en Windows exe-fil, der vil simulere cron jobbet fra * nix system


Jeg kan ikke lide at installere nogen exe-fil til mine servere eller udviklingsmaskine,
men jeg vil give løsningen som de skrev:


I Windows Xp, Kopier alle 2 DLL-filer med wget.exe til C: \ windows-mappen


Opret en opgave, giv Kør tid, derefter i avanceret indstilling i kommandotype 'RUN'


C:Windowswget.exe -q -O NUL http://localhost/mycron.php


I Windows 7/Server 2005/2008, Kopier alle 2 DLL-filer med wget.exe til C: \ windows-mappen


Opret en opgave, giv Kør tid derefter i avanceret indstilling i kommandotekst typen 'Program/Script'


C:Windowswget.exe


og i 'Add arguments (optional)' type


-q -O NUL http://localhost/mycron.php


Solution-4 ved hjælp af en .bat-fil og opgaveplanlæggeren


Jeg fandt det her på Stackoverflow, og det ligner de første 2:



  1. Opret en cron.php-fil (den kode, du vil udføre med jævne mellemrum)

  2. Opret en CRON.BAT-fil, kopier og forbi nedenstående kode i filen


    D: \ xampp \ php \ php.exe D: \ xampp \ htdocs \ Application \ cron.php



Stien, jeg har skrevet, er ifølge min xampp- og cron.php-fil, opdatér stien til filer i henhold til dit systemkatalog



  1. At planlægge en opgave
    Klik på start> Alle programmer> Tilbehør> Systemværktøjer> Planlagte opgaver



Eller du kan gå direkte
Kontrolpanel> Planlagte opgaver


Højreklik i mappen
Ny> Planlægningsopgave


Giv et passende navn til opgaven.
I RUN-tekstfeltet ... Skriv den komplette sti i CRON.BAT-filen
i mit tilfælde er det


D:xampphtdocsApplicationCRON.BAT


Indstil skemaet for jobbet, du kan bruge avanceret knap, hvis det kræves.


Løsning-5


Jeg kan heller ikke lide det, fordi et script ikke kan afhænge af en anden hjemmeside, men det er alligevel en løsning.


Brug en ekstern online cron job service.


https://www.google.ca/search?q=cron+job+online+service[22]


Vælg en løsning, som er mere passende for dig. Håber dette vil hjælpe nogen.


UPDATE


Solution-6 (Baseret på svarene nedenfor, og arbejder også med CodeIgniter!)


Opret cron.bat-filen og skriv følgende kommando og gem den.


@ECHO OFF
c:
cd C:Program FilesInternet Explorer
START iexplore.exe http://localhost/path/to/cron/job/1


Opret en opgave, giv Kør tid i Trigger-indstillingen. Derefter aktiveres indstilling af indstilling i kommandotekst typen 'Program/script'


C:xampppathhtdocsfolderincludescron.bat


END UPDATE


Besvare dit spørgsmål:



  Kan det specifikt ved php kode eller ved hjælp af en anden måde at gøre dette? Fordi jeg
  Ønsker alt arbejde udført på php/server i stedet for brug for min bruger config
  cron jobbet selv. Hvilket betyder, at jeg vil have min php kode kan indstille
  cron i server og server vil se på cron?



Der er andre måder at gøre dette på:


Brug cron-manager fra PHP
Brug af cron manager fra PHP


Administrere Cron Jobs med PHP
http://code.tutsplus.com/tutorials/managing-cron-jobs-with-php-2--net-19428[24]


Desværre behøver alle løsninger med PHP en * nix-servertype og/eller cPanel og er mere eller mindre komplicerede at implementere.

Andre referencer 1


Ok, hvis jeg forstod rigtigt, vil du gerne have et cron job skabt på et system, uden at en bruger skal oprette opgaven.


Dybest set kan dette nemt gøres i en .bat-fil, (det kan endda kaldes fra php).
Schtasks-appen kan nemt automatisere oprettelsen af ​​en planlagt opgave. For eksempel:


schtasks /create /tn UNO /tr YOURAPP.EXE /sc HOURLY /mo 2


Se den officielle MS support side for mere info om denne nifty ansøgning. [25]


En anden mulighed, der endda kan være lettere for brugeren, er at bruge et installationsprogram. Jeg har ikke oprettet så mange Windows-apps selv, men har haft fornøjelsen at spille med NSIS, og denne app har også muligheder for at oprette planlagte opgaver, blandt mange mange andre funktioner alt for mange til at nævne her. Anbefales meget, hvis du har brug for en brugerinstalleret pakke. [26]


Håber det hjælper, glad kodende ven.

Andre referencer 2


Et andet godt værktøj er gratis til rådighed på Windows, nncron. Den bruger nøjagtig samme syntaks end unix 'cron:


http://www.nncron.ru/[27]


Jeg finder det nemmere at håndtere, at denne forfærdelige schtasks :)


Lite-versionen er den, jeg foreslår at bruge. Den fulde powered version understøtter scripting i config-filerne. Det kunne være praktisk, men på en eller anden måde dræbt for normale cron job.

Andre referencer 3


Trin Opret Cron i Windows:


Trin 1> Opret .bat-fil


    1. open notepad.
    2. click File -> Save As.
    3.Give the file a name i.e. MyBatchFile.bat Underneath the filename box change the file type to All Files. The .bat on the end of the filename will instruct the PC to open it as a batch file.


Trin 2> I MyBatchFile.bat skriv følgende kommando


    ECHO OFF
    START File Full Path write here like http://www.google.com


Trin 3>
    Åbn Start-Alle programmer-Tilbehør-Systemværktøjer-Planlagte opgaver.
    Klik på Opret opgave fra højre side bar.
    Navn: Enhver
    trigger: Indstil tid fra drop down og vælg pr. dag
    Handling: vælg .bat-fil
    Klik på OK-knappen

Andre referencer 4


En anden ret simpel tilgang er powerhell, for at hente indholdet af din php-fil.


Task-Scheduler, mål: Powershell.exe, brug argumenter:


-Command "(New-Object Net.WebClient).DownloadString('http://myhost/cron/cron.php')"


(Ups, gamle indlæg)

Andre referencer 5


Trin Opret Cron i Windows OS:


Trin 1> Opret .bat-fil


    1. Open notepad.
    2. Click File -> Save As.
    3. Give the file a name i.e. MyBatchFile.bat Underneath the filename box change the file type to All Files. The .bat on the end of the filename will instruct the PC to open it as a batch file.


Trin 2> I MyBatchFile.bat skriv følgende kommando


    ECHO OFF
    START File Full Path write here like http://www.google.com


Trin 3>
    Åbn Start-Alle programmer-Tilbehør-Systemværktøjer-Planlagte opgaver.

    Klik på Opret opgave fra højre side bar.
    Navn: Enhver
    trigger: Indstil tid fra drop down og vælg pr. dag
    Handling: vælg .bat-fil
    Klik på OK-knappen