2013-08-27 38 views
16

Tôi tạo một lệnh giao diện điều khiển trong dự án của mình. Tôi muốn nó được thực hiện hàng ngày lúc 7 giờ tối Làm thế nào tôi có thể làm điều đó trong symfony2? Một cách làm cron php cơ bản hoặc symfony2 có cái gì thuận tiện hơn? Cảm ơnCông việc Cron trong symfony2

Trả lời

25

Bạn có thể sử dụng cơ bản cron. Trên debian hoặc ubuntu bạn có thể làm điều này:

crontab -e -u <username> 

đâu tên là tên của người sử dụng mà nên thực hiện lệnh. Trong trình chỉnh sửa, thêm lệnh của bạn. Dưới đây là a good explanation cách hiển thị của dòng. Đối với lệnh Symfony2, thao tác này sẽ hoạt động:

* * * * * /usr/bin/php /var/www/symfony2/app/console your:command --option=123 

Điều này sẽ thực hiện your:command --option=123 mỗi phút.


Trên một cửa sổ máy bạn có thể sử dụng lệnh ac. Nó có sẵn cho windows 7 theo mặc định. Read the docs here. Nó sẽ giống như thế này:

AT 00:00 /every:M,T,W,Th,F "php /var/www/symfony2/app/console your:command --option=123" 

Hãy chắc chắn rằng phpavailable globaly hoặc đường dẫn đến tập tin php.exe là đúng.

+0

Jep, đó là cách để đi. –

+0

os của tôi là window7. Tôi không thể chạy lệnh crontab trực tiếp. Vậy tôi nên làm gì đây? Cảm ơn bạn đã trả lời ur. @ byf-ferdy –

+0

Tôi đã cập nhật câu trả lời của mình. – ferdynator

2

Bạn chỉ có thể thiết lập một cron trong crontab để thực hiện lệnh symfony của bạn,

ví dụ

0 19 * * */var/www/symfony/app/console YOUR_COMMAND

+0

Không, bạn phải chạy lệnh dưới dạng người dùng www-data, nếu không nó có thể làm hỏng bộ nhớ cache. –

0

Tôi nghĩ đây là một câu hỏi hay. Gần đây tôi đã thực hiện một số công việc (sử dụng các thành phần ZF1, không phải MVC đầy đủ), nơi tất cả các loại phụ thuộc ẩn tồn tại trên các công việc cron để thực hiện các nhiệm vụ, và tôi phải dành nhiều thời gian thêm bình luận và tạo tài liệu để cảnh báo bất cứ ai đến sau tôi những gì những con rồng tồn tại, những gì họ đã làm, nơi họ đã được lưu trữ và như vậy.

Nó không bao giờ cho tôi liên tưởng sẽ có một thành phần ZF chỉ cho mục đích đó, rất nhiều phụ thuộc vào bộ điều khiển mặc dù ...

Xin lỗi tôi không trả lời câu hỏi trực tiếp của bạn mặc dù.

FWIW

+0

Liên kết của bạn đã lỗi thời. – ferdynator

+0

Đây có phải là câu trả lời không? – Trix

0

Chú ý đến người dùng bạn sử dụng để thực thi lệnh. Nếu bạn chạy nó như là root, root có thể sở hữu bộ nhớ cache của Symfony sau đó phá vỡ HTTP bên trang web của bạn (vì nginx sẽ chạy như người dùng www-data chẳng hạn).

Với Docker, tôi đang sử dụng phương pháp "setuser" hình ảnh nền phusion để buộc người dùng www-data.

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