”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 如何在 Laravel 中运行 Cron 作业

如何在 Laravel 中运行 Cron 作业

发布于2024-11-05
浏览:342

How To Run Cron Jobs in Laravel

在本教程中,我将向您展示如何在 Laravel 中运行 cron 作业,但最重要的是,我们会让事情对我们的学生来说简单易行。在构建 Laravel 应用程序时,我们将探索如何在您自己的计算机上设置和运行这些自动化任务。

首先,什么是 cron 作业?将其视为您网站的私人助理 - 一个从不睡觉并且总是准时出现的人。这是您安排在特定时间自动运行的任务。在 Laravel 中,我们使用它们来处理重复性工作,以保持应用程序顺利运行。

现在,您可能想知道,“如何让这些 cron 作业在我自己的计算机上运行?”我们将逐步完成这个过程,到最后,您将像专业人士一样安排任务。

让我们从 Laravel 调度系统的核心 - app/Console/Kernel.php 文件开始。这就是奇迹发生的地方。当你打开这个文件时,你会看到一个名为schedule的方法。这是您设置任务的游乐场。它可能如下所示:

protected function schedule(Schedule $schedule)
{
    $schedule->command('emails:send')->daily();
}

在这个例子中,我们会告诉 Laravel,“嘿,我希望你每天发送电子邮件。”就这么简单! Laravel 为您提供了大量关于何时运行任务的选项。如果您愿意,您可以每小时、每周一次甚至每五分钟运行一次。

现在,事情变得有点棘手了。在真实的网络服务器上,有一个系统可以自动运行这些计划任务。但在您自己的计算机上,我们需要发挥一点创意。

Laravel 为我们提供了一个方便的命令来手动运行我们的计划任务。您可以在终端中输入:

php artisan schedule:run

这个命令就像是说,“运行所有现在到期的任务。”但说实话,您不想坐在那里一遍又一遍地输入这个命令,对吗?

所以,这是一个巧妙的技巧。我们可以创建一个简单的脚本,每分钟为我们运行此命令。这就像您的计算机上有一个微型机器人助手。该脚本可能如下所示:

#!/bin/bash

while true
do
    php /path/to/your/project/artisan schedule:run >> /dev/null 2>&1
    sleep 60
done

别让这吓到你!它只是告诉您的计算机每 60 秒运行一次 Schedule:run 命令。您可以将其另存为 .sh 文件,并在处理项目时在后台运行它。

当您测试计划任务时,最好添加一些日志记录。这样,您就可以看到幕后发生的事情。这就像给自己留下一串面包屑。

请记住,当您在自己的计算机上构建和测试应用程序时,此设置非常有用。当您准备好真正启动您的网站时,您需要在网络服务器上进行一些不同的设置。

Laravel 的创建者 Taylor Otwell 曾经说过,“任务调度是现代 Web 开发的一个重要方面,它允许开发人员自动执行重复性任务并提高应用程序的整体效率。”他是绝对正确的!通过掌握计划任务,您将朝着构建更强大、更高效的 Web 应用程序迈出一大步。

所以你就有了!现在,您可以在构建 Laravel 应用程序时在自己的计算机上设置并运行 cron 作业。一开始可能看起来有点复杂,但通过练习,你会发现它成为第二天性。不断尝试,不知不觉中,您就会像经验丰富的专业人士一样安排任务!

版本声明 本文转载于:https://dev.to/danish/how-to-run-cron-jobs-in-laravel-38i4?1如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 人脸检测失败原因及解决方案:Error -215
    人脸检测失败原因及解决方案:Error -215
    错误处理:解决“ error:((-215)!empty()in Function Multultiscale中的“ openCV 要解决此问题,必须确保提供给HAAR CASCADE XML文件的路径有效。在提供的代码片段中,级联分类器装有硬编码路径,这可能对您的系统不准确。相反,OPENCV提...
    编程 发布于2025-05-29
  • C++中如何将独占指针作为函数或构造函数参数传递?
    C++中如何将独占指针作为函数或构造函数参数传递?
    在构造函数和函数中将唯一的指数管理为参数 unique pointers( unique_ptr [2启示。通过值: base(std :: simelor_ptr n) :next(std :: move(n)){} 此方法将唯一指针的所有权转移到函数/对象。指针的内容被移至功能中,在操作...
    编程 发布于2025-05-29
  • 为什么Microsoft Visual C ++无法正确实现两台模板的实例?
    为什么Microsoft Visual C ++无法正确实现两台模板的实例?
    The Mystery of "Broken" Two-Phase Template Instantiation in Microsoft Visual C Problem Statement:Users commonly express concerns that Micro...
    编程 发布于2025-05-29
  • PHP与C++函数重载处理的区别
    PHP与C++函数重载处理的区别
    作为经验丰富的C开发人员脱离谜题,您可能会遇到功能超载的概念。这个概念虽然在C中普遍,但在PHP中构成了独特的挑战。让我们深入研究PHP功能过载的复杂性,并探索其提供的可能性。在PHP中理解php的方法在PHP中,函数超载的概念(如C等语言)不存在。函数签名仅由其名称定义,而与他们的参数列表无关。...
    编程 发布于2025-05-29
  • 找到最大计数时,如何解决mySQL中的“组函数\”错误的“无效使用”?
    找到最大计数时,如何解决mySQL中的“组函数\”错误的“无效使用”?
    如何在mySQL中使用mySql 检索最大计数,您可能会遇到一个问题,您可能会在尝试使用以下命令:理解错误正确找到由名称列分组的值的最大计数,请使用以下修改后的查询: 计数(*)为c 来自EMP1 按名称组 c desc订购 限制1 查询说明 select语句提取名称列和每个名称...
    编程 发布于2025-05-29
  • 版本5.6.5之前,使用current_timestamp与时间戳列的current_timestamp与时间戳列有什么限制?
    版本5.6.5之前,使用current_timestamp与时间戳列的current_timestamp与时间戳列有什么限制?
    在时间戳列上使用current_timestamp或MySQL版本中的current_timestamp或在5.6.5 此限制源于遗留实现的关注,这些限制需要对当前的_timestamp功能进行特定的实现。 创建表`foo`( `Productid` int(10)unsigned not n...
    编程 发布于2025-05-29
  • 如何解决AppEngine中“无法猜测文件类型,使用application/octet-stream...”错误?
    如何解决AppEngine中“无法猜测文件类型,使用application/octet-stream...”错误?
    appEngine静态文件mime type override ,静态文件处理程序有时可以覆盖正确的mime类型,在错误消息中导致错误消息:“无法猜测mimeType for for file for file for [File]。 application/application/octet...
    编程 发布于2025-05-29
  • 大批
    大批
    [2 数组是对象,因此它们在JS中也具有方法。 切片(开始):在新数组中提取部分数组,而无需突变原始数组。 令ARR = ['a','b','c','d','e']; // USECASE:提取直到索引作...
    编程 发布于2025-05-29
  • 编译器报错“usr/bin/ld: cannot find -l”解决方法
    编译器报错“usr/bin/ld: cannot find -l”解决方法
    错误:“ usr/bin/ld:找不到-l “ 此错误表明链接器在链接您的可执行文件时无法找到指定的库。为了解决此问题,我们将深入研究如何指定库路径并将链接引导到正确位置的详细信息。添加库搜索路径的一个可能的原因是,此错误是您的makefile中缺少库搜索路径。要解决它,您可以在链接器命令中添加...
    编程 发布于2025-05-29
  • 解决MySQL插入Emoji时出现的\\"字符串值错误\\"异常
    解决MySQL插入Emoji时出现的\\"字符串值错误\\"异常
    Resolving Incorrect String Value Exception When Inserting EmojiWhen attempting to insert a string containing emoji characters into a MySQL database us...
    编程 发布于2025-05-29
  • 在Ubuntu/linux上安装mysql-python时,如何修复\“ mysql_config \”错误?
    在Ubuntu/linux上安装mysql-python时,如何修复\“ mysql_config \”错误?
    mysql-python安装错误:“ mysql_config找不到”“ 由于缺少MySQL开发库而出现此错误。解决此问题,建议在Ubuntu上使用该分发的存储库。使用以下命令安装Python-MysqldB: sudo apt-get安装python-mysqldb sudo pip in...
    编程 发布于2025-05-29
  • FastAPI自定义404页面创建指南
    FastAPI自定义404页面创建指南
    response = await call_next(request) if response.status_code == 404: return RedirectResponse("https://fastapi.tiangolo.com") else: ...
    编程 发布于2025-05-29
  • 用户本地时间格式及时区偏移显示指南
    用户本地时间格式及时区偏移显示指南
    在用户的语言环境格式中显示日期/时间,并使用时间偏移在向最终用户展示日期和时间时,以其localzone and格式显示它们至关重要。这确保了不同地理位置的清晰度和无缝用户体验。以下是使用JavaScript实现此目的的方法。方法:推荐方法是处理客户端的Javascript中的日期/时间格式化和时...
    编程 发布于2025-05-29
  • 如何克服PHP的功能重新定义限制?
    如何克服PHP的功能重新定义限制?
    克服PHP的函数重新定义限制在PHP中,多次定义一个相同名称的函数是一个no-no。尝试这样做,如提供的代码段所示,将导致可怕的“不能重新列出”错误。 但是,PHP工具腰带中有一个隐藏的宝石:runkit扩展。它使您能够灵活地重新定义函数。 runkit_function_renction_re...
    编程 发布于2025-05-29
  • HTML格式标签
    HTML格式标签
    HTML 格式化元素 **HTML Formatting is a process of formatting text for better look and feel. HTML provides us ability to format text without us...
    编程 发布于2025-05-29

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3