Cron 在特定时间运行Laravel任务
我在SO见过一些类似的问题,但都没有回答我。我以前从来没有听说过克朗,我是拉雷维尔的新手。我需要的是每周运行一次任务,在我的数据库(MySql)上执行一些操作,比如说每个星期天上午12:00。我怎样才能实现这个目标呢?如果可以使用cron,只需执行Cron 在特定时间运行Laravel任务,cron,laravel,task,Cron,Laravel,Task,我在SO见过一些类似的问题,但都没有回答我。我以前从来没有听说过克朗,我是拉雷维尔的新手。我需要的是每周运行一次任务,在我的数据库(MySql)上执行一些操作,比如说每个星期天上午12:00。我怎样才能实现这个目标呢?如果可以使用cron,只需执行 crontab -e 或者,如果需要以root用户身份运行: sudo crontab -e 这将打开一个文本编辑器,以便您可以修改crontab,在这里,每个计划的命令都有一行,如下所示: 1 0 * * * php /var/www/myB
crontab -e
或者,如果需要以root用户身份运行:
sudo crontab -e
这将打开一个文本编辑器,以便您可以修改crontab,在这里,每个计划的命令都有一行,如下所示:
1 0 * * * php /var/www/myBlog/artisan task:run
此类命令将在每天的第一分钟(0h01或12h01am)执行
以下是对这一切的解释:
* * * * * <command to execute>
┬ ┬ ┬ ┬ ┬
│ │ │ │ │
│ │ │ │ │
│ │ │ │ └───── day of week (0 - 6) (0 to 6 are Sunday to Saturday, or use names)
│ │ │ └────────── month (1 - 12)
│ │ └─────────────── day of month (1 - 31)
│ └──────────────────── hour (0 - 23)
└───────────────────────── min (0 - 59)
然后您只需将其添加到crontab中,但您需要一些东西来访问url,如wget或curl:
0 12 * * 0 curl http://mysite.com/run/task
与任何其他Artisan命令一样,您可以从命令行创建和运行laravel任务。因此,如果您使用的是windows,您可以手动运行该命令,查看它是否有效 然后,当您在生产服务器上时(如果它是基于Unix的,当然更好),您可以按照Antonio的指示创建cron作业并将其添加到cron选项卡。请记住,您需要知道PHP执行的完整路径 我的教程详细解释了这一点:
希望您能找到您想要的答案。自从Laravel 5以来,在执行
crontab-e
之后,您只需要在crontab中输入以下条目
* * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1
请记住将/path/to/artisan
零件更改为项目特定路径
然后,您可以在Laravel的
App\Console\Kernel
类中定义计划任务和运行频率。有关更多信息,请参阅Laravel文档:对不起,我仍在编辑我在维基百科上看到的anwserYes,但我仍然不知道如何告诉我的应用程序运行这些命令,而且我在Windows中工作,因此无法使用sudo
。除了我的应用程序正在开发中之外,当它投入生产时,它还能工作吗?cron基本上是一个任务调度器,你也有针对windows()的任务调度器。或者你可以安装cron for windows,这取决于你自己。你正在建立一个网站,正如我所说的,你可以创建一个url来在内部运行你的任务:TaskController==你的控制器类,run=你的方法,一旦你的方法被激发,你可以执行你需要的任何事情,你只需要一些东西来点击这个url,这就是你的任务调度程序。好的,我现在无法测试,但我相信你。谢谢;)
0 12 * * 0 curl http://mysite.com/run/task
* * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1