[英]Cron Job in symfony2
我在项目中创建了一个控制台命令。 我想让它每天晚上7点执行。我怎么能在symfony2中执行它? 基本的php cron工作方式还是symfony2有更方便的东西? 谢谢
你可以使用基本的cron 。 在debian或ubuntu上你可以这样做:
crontab -e -u <username>
其中username是应该执行命令的用户的名称。 在编辑器中添加您的命令。 这是一个很好的解释线应该如何看。 对于Symfony2命令,这样的东西应该工作:
* * * * * /usr/bin/php /var/www/symfony2/app/console your:command --option=123
这将每分钟执行your:command --option=123
。
在Windows机器上,您可以使用ac
命令。 默认情况下,它适用于Windows 7 。 阅读这里的文档 。 它应该看起来像这样:
AT 00:00 /every:M,T,W,Th,F "php /var/www/symfony2/app/console your:command --option=123"
确保php
是全球可用的,或者php.exe
文件的路径是正确的。
你可以在crontab中设置一个cron来执行你的symfony命令,
例如
0 19 * * * / var / www / symfony / app / console YOUR_COMMAND
我认为这是一个很好的问题。
我最近做了一些工作(使用ZF1组件,而不是完整的MVC),其中cron作业中存在各种隐藏的依赖项以执行任务,我不得不花费大量时间添加注释和创建文档来警告任何追随我的人这些crons存在,他们做了什么,他们存储在哪里,等等。
我永远不会觉得有一个ZF组件只是为了那个目的,很多依赖控制器虽然......
对不起,我没有回答你的直接问题。
FWIW
注意用于执行命令的用户。 如果你以root身份运行它,root可以拥有Symfony缓存,然后破坏你的站点HTTP端(因为nginx将作为www-data用户运行)。
使用Docker,我使用phusion基本图像“setuser”方法强制www-data用户。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.