2010-07-13 38 views

Trả lời

11

Windows không có Cron (nó là chương trình lập lịch nhiệm vụ chính cho hệ thống Linux). Phiên bản Windows cho đó là Task Scheduler. This question khuyên bạn nên sử dụng lệnh at.

Vì vậy, Cron không liên quan gì đến cài đặt Apache, Mysql, PHP tôi không nghĩ rằng có thể kiểm tra đáng tin cậy cronjob bạn đã tạo cho Cron Linux trong cửa sổ (có thể với Cygwin).

+1

Ghi chú bên : Chương trình hiện tại để sử dụng công cụ lên lịch nhiệm vụ là 'lược đồ',' at' đã không còn được dùng trong vài năm vì nó chỉ thể hiện các tính năng có trong các phiên bản cũ hơn của công cụ lập lịch tác vụ. – Joey

-1

Bạn có ý nghĩa gì với "công việc cron"? Trên rất nhiều trang web có một trang đặc biệt như "cron.php" được nhấn kỳ, thông thường như vậy:

0 * * * * wget http://example.org/cron.php 

Trong trường hợp này bạn chỉ cần phải tự đánh tập tin php cron của bạn để mô phỏng hành vi.

+3

"một công việc cron" có nghĩa là cron – Starx

+0

Vâng ý tôi là, công việc cron đang làm gì? Trong thuật ngữ trang web "cron" thường đồng nghĩa với "công việc thỉnh thoảng chạy", có thể đạt được với công cụ lên lịch hoặc tự nhấn nó. Nếu bạn thực sự cần thử nghiệm crontab, đó là một vấn đề khác. – ZoFreX

+0

Ok, sau đó làm thế nào để sử dụng công cụ lập kế hoạch để thực thi một kịch bản PHP trong một khoảng thời gian nhất định? – Starx

2

Cài đặt cron (có, nó là available for Windows).

Tôi sẽ không muốn để thực hiện điều đó trên Windows. Bạn có lẽ sẽ tốt hơn khi lấy một bản sao của VirtualBox và tạo ra một cái gì đó giống như môi trường sản xuất của bạn để phát triển hơn.

+0

tôi không nghĩ rằng điều này trả lời câu hỏi. wamp là cho các cửa sổ và cron là cho unix/linux vì vậy chỉ cần nói với anh ta để cài đặt cron không làm cho bất kỳ ý nghĩa. những gì ông có thể có nghĩa là để đề nghị một số thay thế cho cron cho windows –

+0

@ChetanPaliwal - Rất nhiều phần mềm UNIX chạy trên Windows. Ví dụ, Cron: http://cronw.sourceforge.net/ – Quentin

+0

có nhưng chỉ nói 'install cron' là câu trả lời mà không đưa ra bất kỳ liên kết hoặc tham chiếu nào, theo ý kiến ​​của tôi, là (không phải là cách tốt để trả lời –

2

Chỉ cần chạy công việc từ dòng lệnh. Đó là công việc mà bạn muốn thử nghiệm, chứ không phải chính nó. Nếu bạn cần phải có nó thực hiện trong khoảng thời gian định kỳ để mô phỏng cron, sau đó sử dụng Windows "Scheduled Tasks" cơ sở

0

Hãy thử commnad này

<?php 

echo exec('0 13 * * * D:\wamp\bin\php -f D:\wamp\www\be.php'); 

?> 
+0

mã bên trong trong be.php – Rathinam

0

<meta http-equiv="refresh" content="0; url=http://localhost/myproject/cron.php" />

thiết lập một referesh meta ngay lập tức: content = 0 cứ 5 giây một lần: nội dung = 5

+3

Đây là chuyển hướng không phải là công việc của Cron. Cron job, thực hiện âm thầm. Khái niệm toàn bộ là để có thể thực hiện một số nhiệm vụ, mà không cần sự can thiệp của người dùng. Thao tác này sẽ mở trang trong cửa sổ và quy trình. – Starx

5

bạn có thể chạy tập lệnh trực tiếp từ URL, có nghĩa là nếu bạn muốn chạy cron_test.php scrip t từ cron thiết lập và bạn muốn kiểm tra kết quả cho cùng một thì bạn có thể trực tiếp chạy tập tin này từ localhost như http://www.localhost/XXXX/cron_test.php.

1

Bạn có thể chỉ cron công việc của mình trong môi trường cửa sổ chỉ bằng một dòng. Tôi đã dành gần 5 giờ để tôi muốn chia sẻ với người khác là làm một nhiệm vụ.

  • Trong chương trình cung cấp đường dẫn php.exe, với cài đặt của tôi, nó là c: \ wamp \ bin \ php \ php5.3.5 \ php.exe.
  • Thứ hai, bạn phải đặt đường dẫn tuyệt đối của tệp mà bạn muốn chạy. -f c:\wamp\www\foo\foo.php trong đối số

Vậy là xong. Không cần cài đặt gì cả.

2

Bạn có thể chạy này:

set_time_limit(0); 
ignore_user_abort(true); 
while (1) 
{ 
    //your code here.... 
    sleep($timetowait); 
} 

Bạn có thể đóng trình duyệt kịch bản sẽ tiếp tục

set_time_limit(0); làm cho công việc kịch bản của bạn không có thời gian hạn chế

sleep($timetowait); xác định thời gian để chờ đợi trước khi thực hiện vòng lặp tiếp theo trong khi()

ignore_user_abort(true); le t tập lệnh tiếp tục ngay cả khi trình duyệt bị đóng

while(1) là vòng lặp vô hạn, vì vậy thao tác này sẽ không bao giờ dừng cho đến khi bạn thoát khỏi wamp.

+0

Để tinh chỉnh bỏ phiếu của tôi - đây là tệp .php được kích hoạt bằng cách chạy trong trình duyệt. Nó sẽ thực hiện công việc, nhưng hãy nhớ rằng nó sẽ để lại một số tiến trình Apache đang chạy. –

7

Bạn có thể tạo trang html và mở trang đó trên trình duyệt. Hàm javascript setInterval sẽ gọi cho các khoảng thời gian xác định.

Sau đây là mã để thực hiện việc này. Xác định khoảng thời gian của bạn (ví dụ 5000 chạy mỗi 5sec.)

<html> 
<head> 
    <title>Cron</title> 
</head> 
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
<body> 
<h1>Cron page</h1> 
<script type="text/javascript"> 
    setInterval(function(){ 
     $.get('http://localhost/test/test.php', function(data) { 
      console.log(data); 
     }); 
    }, 5000); 
</script> 
</body> 
</html> 

Lưu ý: Để tránh CORS bạn nên gọi ajax từ cùng một máy chủ hoặc cho phép CORS từ phía máy chủ.

Các vấn đề liên quan