Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cron 在特定时间运行Laravel任务_Cron_Laravel_Task - Fatal编程技术网

Cron 在特定时间运行Laravel任务

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

我在SO见过一些类似的问题,但都没有回答我。我以前从来没有听说过克朗,我是拉雷维尔的新手。我需要的是每周运行一次任务,在我的数据库(MySql)上执行一些操作,比如说每个星期天上午12:00。我怎样才能实现这个目标呢?

如果可以使用cron,只需执行

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