2011-01-11 25 views
8

Công việc Cron được đóng trên máy chủ và máy chủ quản trị của tôi không chấp nhận mở nó. Bởi vì, cron jobs làm chậm máy chủ vv Vì vậy, tôi cần một sự thay thế.Có bất kỳ công việc thay thế nào của Cron không?

Tôi phải chạy tệp php (cron.php) cứ 2 phút một lần.

Vì vậy, làm cách nào tôi có thể thực hiện việc này?

+1

là 'cron.php' phục vụ từ một trang web máy chủ hoặc tôi nó chỉ là một kịch bản địa phương? –

+4

Câu trả lời ngắn gọn là để có được một máy chủ tốt hơn ... – ircmaxell

+0

@Jesse, nó được phục vụ từ một máy chủ web và có thể truy cập với một trình duyệt – Eray

Trả lời

2

Phụ thuộc vào quyền truy cập của bạn vào hộp.

Bản thân PHP sẽ không thể chạy độc lập. Bạn có thể làm một kịch bản cố gắng tăng thời gian thực hiện liên tục, ngủ và kiểm tra công việc mới thường xuyên. Nhưng điều đó là không tối ưu vì bạn sẽ phải truy cập nó qua trình duyệt một lần và tập lệnh sẽ phải đảm bảo nó chỉ chạy một lần.

Với quyền truy cập trình bao, bạn có thể chạy tập lệnh php trên vỏ, điều này sẽ ngăn không cho nó được gọi từ công chúng và phải chạy nó qua trình duyệt web.

Với quyền truy cập trình bao, bạn cũng có thể chạy chương trình cung cấp dịch vụ (cron) cho bạn. Có thể là một Java, Python, hoặc chương trình khác.

Việc làm cron không nên làm chậm máy chủ luôn. Điều đó phụ thuộc vào công việc đang chạy. Nếu đó là công việc của bạn quá tốn kém, quản trị viên của bạn có thể sẽ không ổn khi làm việc xung quanh các công việc cron đã đóng và làm chậm máy chủ một lần nữa và có thể thực hiện thêm hành động để ngăn bạn làm việc xung quanh.

1

Chi tiết đến dịch vụ theo dõi trang web miễn phí và lập lịch [url] /cron.php của bạn. Bạn có thể để trang web của bạn trả về một cái gì đó có ý nghĩa và cấu hình dịch vụ giám sát để thông báo cho bạn về câu trả lời đó.

-2

Nếu bạn có nhiều khách truy cập, chỉ cần viết thư cho cơ sở dữ liệu lần truy cập gần đây nhất, và nếu thời gian làm tổ cần thêm thời gian chạy cron. Nhưng thực sự - tìm kiếm lưu trữ mới.

7

Mặc dù câu hỏi đã được đăng trong một thời gian trước, tôi chỉ có cùng một vấn đề nhưng không tìm thấy một giải pháp (dựa trên Kissaki's answer, cảm ơn!) Và nghĩ rằng tôi muốn gửi nó ở đây cho bất cứ ai vẫn đang tìm kiếm một giải pháp có thể.

Điều kiện tiên quyết:

  • truy cập SSH
  • Python

Mã (python):

from subprocess import call 
import time 
while True: 
    call(["php","cron.php"]) 
    time.sleep(120) 
+0

Điều này khá gọn gàng! Cám ơn vì đã chia sẻ! – Yavor

+0

Vì vậy, tôi cần phải gọi kịch bản python trên ssh một lần? –

+0

Chính xác. Nếu bạn có hỗ trợ cho "màn hình", bạn có thể làm điều đó trong nền là tốt. – DaJF

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