gpt4 book ai didi

cron - 在特定时间运行 Laravel 任务

转载 作者:行者123 更新时间:2023-12-04 16:40:03 26 4
gpt4 key购买 nike

我在 SO 看到了一些类似的问题,但没有一个回答我。我以前从未听说过 CRON,而且我是 Laravel 的新手。我需要的是每周运行一次任务以对我的数据库 (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)

因此,在您的情况下,您将创建如下一行:
0    12    *    *    0  <command to execute>

但是你如何为 Laravel 中的任务做到这一点?有很多方法,其中一个是在我的第一个示例中:创建一个 artisan 命令 (task:run) 然后只运行 artisan,或者您可以在您的应用程序中创建一个路由,该路由每次被点击时都会调用您的任务:
Route::get('/task/run',array('uses'=>'TaskController@run'));

然后你只需要将它添加到你的 crontab,但你需要一些东西来访问你的 url,比如 wget 或 curl:
0  12  *  *  0  curl http://mysite.com/run/task

关于cron - 在特定时间运行 Laravel 任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17128857/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com