2013-05-07 81 views
5

Tình huống:
Trang php/html của tôi truy xuất nội dung của trang khác trên miền khác cứ 5-10 phút một lần. Tôi sử dụng một JavaScript setInterval() và một jquery .load() để yêu cầu nội dung từ miền khác vào một phần tử trên trang của tôi. Mỗi khi nó lấy nội dung, javascript so sánh nội dung mới với nội dung trước đó và sau đó tôi thực hiện cuộc gọi Ajax đến một tập lệnh php gửi cho tôi một email về những thay đổi đó là gì.Tự chạy tập lệnh php?

Vấn đề:
Đó là tất cả làm việc tốt và dandy trừ thực tế là tôi cần một trình duyệt không ngừng mở, yêu cầu các bản cập nhật.

Câu hỏi:
Có cách nào để thực hiện điều này với một số loại 'tự thực hiện' kịch bản trên máy chủ? Một cái gì đó mà tôi sẽ chỉ phải bắt đầu một lần, và nó tiếp tục chạy trên của riêng nó mà không cần một trình duyệt được mở miễn là tôi muốn kịch bản để chạy?

Cảm ơn trước! P.S. Tôi không phải là một chuyên gia php/javascript bằng bất kỳ phương tiện nào, nhưng tôi có thể có được cách của tôi xung quanh.

+1

Nếu bạn có quyền truy cập gốc vào máy chủ (máy chủ hoặc VPS) hoặc quyền cron, bạn có thể sử dụng lệnh cron để chạy mỗi X phút này. –

+0

chỉ sử dụng công việc cron trên máy chủ của bạn .. xem này ~> http://www.nbill.co.uk/documentation/setting-up-a-cronjob.html – reikyoushin

+0

Bạn có thể thiết lập một công việc cron để bắt đầu tập lệnh PHP của bạn trên máy chủ. – TCB13

Trả lời

1

Tôi tin rằng điều bạn đang tìm kiếm là một công việc cron.

+0

"javascript so sánh nội dung mới với nội dung trước đó và sau đó tôi thực hiện cuộc gọi Ajax ..." Bạn có thể giải thích về cách thức này được thực hiện thông qua một công việc định kỳ không? –

+1

Bạn không. Bạn chỉ cần tạo một tệp PHP để thực hiện mọi thứ và sau đó thiết lập một công việc cron để thực hiện nó. – TCB13

1

Nếu tập lệnh của bạn dựa trên Javascript để thực hiện đúng, bạn sẽ cần sử dụng trình duyệt để hoàn thành mục tiêu của mình. Tuy nhiên, nếu bạn có thể thay đổi tập lệnh của mình để thực hiện tất cả chức năng thông qua PHP, có thể sử dụng cURL để yêu cầu dữ liệu cần thiết, bạn có thể sử dụng công việc cron để thực thi tập lệnh theo các khoảng thời gian đều đặn.

1

Nếu bạn đang chạy tập lệnh tại một khoảng thời gian, tôi khuyên bạn nên sử dụng tập lệnh bash thay vì chạy ở chế độ nền.

#!/bin/bash 

while [ 1 ] 
do 
    php "script.php" 
    sleep 300 
done 

Sau đó, bạn có thể chạy tập lệnh như nohup bash.sh. 300 giây = 5 phút.

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