问题标签 [laravel-scheduler]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
69 浏览

laravel - Laravel 调度器

我是 Laravel 调度程序的新手。每当我在我的数据库中添加一些东西(比如条目 A)时,我都会安排一个事件(它会在一段时间后触发)。

我想不通的是:如果我删除条目 A,并且它的事件没有被触发,有没有办法查看(在为条目 A 运行计划任务之前)条目 A 是否存在于数据库中?

0 投票
1 回答
354 浏览

php - Laravel 5.3 调度程序在 Windows 上运行一次然后结束,无需任何进一步处理

操作系统:Windows 8.1

Laravel 版本:5.3.15

你好,

我在让 Laravel 的调度程序在我的机器上正确运行并保持运行时遇到了一些麻烦我可以看到某种输出表明它确实在工作。每次我运行php artisan schedule:run它都会调用任何列出的命令一次然后就死了。它不会重复或任何东西。下面的示例尝试:

编码:

在此处输入图像描述

尝试运行调度程序时的结果:

在此处输入图像描述

我试过的:

我从下面的链接中尝试了多个建议的修复程序,并且实际上在整个 stackoverflow 中也引用了一些修复程序。包括添加批处理文件,在我的系统验证等中设置 php 的路径等,如 Kryptonit3 以下链接中所建议的那样:

https://laracasts.com/discuss/channels/general-discussion/running-schedulerun-on-windows

但是,没有任何效果。即使在“Windows 任务计划程序”工具中,它也只会运行一次,结束 CLI 中的任何进一步处理,然后关闭窗口。没有实际迹象表明此调度程序无限期地在后台运行(类似于仅没有队列的后台作业)。

问题:

1 - 没有指示(回显“我已安排”)我怎么知道这是否真的有效?

2 - 为什么尝试运行此命令在成功完成一次后会死掉。

php artisan schedule:run3 - 当我尝试在 CLI 或 Windows 任务调度程序中使用时,我的 Laravel 版本是否与调度程序无法永久运行有关?

4 - 主要是我在这里想要完成的是系统每分钟扫描一个数据库表的字段。我该如何做到这一点?

5 - 有人可以给我一些澄清吗?或者指出我正确的方向,这样我就可以让这件事真正无限期地运行,而不会在第一次运行后结束?

注意:我不想为这么简单的事情使用 Laravel Forge 或任何其他外部服务。我觉得那将是矫枉过正和不必要的。

0 投票
1 回答
570 浏览

php - laravel 雄辩的查询构建器更新自定义时间戳字段而没有任何逻辑

expired(boolean)我在一个名为and的表中有两列expire_date(timestamp)。我正在运行一个调度程序来检查优惠券是否过期,everyMinute()同时使用 foreach 更新expired列值,我发现它用今天的日期更改了 expired_date 列值。我发现这很奇怪,或者可能是我搞砸了通过引用传递的东西..这是代码

这是结果,

更新前的数据库

在此处输入图像描述

运行php artisan schedule:run命令后的数据库

在此处输入图像描述

谁能告诉我为什么 expired_date 已更新为今天的日期?

0 投票
1 回答
1727 浏览

laravel-5 - Laravel 计划:运行不起作用

我正在尝试 Laravel schedule 命令来运行一些后台进程来发送邮件和获取电子邮件。当我使用 artisan 单独运行这些命令时,它们都会运行,但是当我尝试运行 shcedule:run 命令来运行这些命令时,它会显示“没有计划的命令准备好运行”。

我试图寻找答案,但没有任何效果。所以我试图通过运行简单的命令来纠正这个问题并检查输出。下面是我的kernal.php

当我运行 schedule:run 它显示这个输出。

但是当我在 schedule() 函数中删除 dd() 时,输出是

没有计划的命令准备好运行。

谁能帮助我并告诉我我做错了什么。

0 投票
1 回答
1043 浏览

laravel - 无法让 Cron 作业完美运行

我使用 Laravel/Lumen。我设置了一个简单的工作来发送短信:

现在,每当记录保存在我的控制器中时,我都会调度作业:

现在我的 kernel.php 中有以下设置:

在我的 cPanel 中,我设置了以下 cron 作业:

上面的命令设置为每分钟运行一次。

问题 这个设置根本不适合我。在我的 Bluehost VPS 上,它导致我的服务器多次崩溃,迫使我重新启动。显然它占用了这么多内存,我不明白为什么,支持也无法帮助我。让我澄清一下,它有效,但导致我的服务器每天至少崩溃两次。

所以认为这与我的托管有关,我在其他地方(SiteGround)购买了另一个托管。现在我什至无法让 cron 工作。每次 cron 执行时都会发送到我的邮件:

现在我不知道是什么原因造成的,也不知道如何解决。我相信我已按照文档中的所有说明进行操作,并且无法判断我在这里做错了什么。我已经完成了研究并联系了两家托管公司的支持人员,但仍然......

这是我从支持人员那里收到的最后一条消息:

我尝试运行 cron 几次,但它没有任何预定的命令要运行:

此外,我再次增加了限制。我为脚本的执行设置了 300 秒和 2048MB memory_limit。

请再试一次,如果您需要任何帮助,请不要犹豫更新票证。

Lumen和jobs有什么问题吗?我在 Laravel 5.1 中成功运行命令这里发生了什么。

或者,如果有更简单或有效的方法可以通过 cron 使用常规 PHP 执行此脚本,请告诉我如何。

0 投票
3 回答
4452 浏览

php - Laravel 任务调度程序不起作用

我尝试使用以下代码在 laravel 5.3 中运行调度程序App/Console/Kernel.php

并使用以下内容在我的共享主机中设置 cron 作业:

但它在我的共享主机中不起作用

我为队列使用了数据库驱动程序,尝试次数仍然为 0,即任务调度程序未执行队列。

任何人都可以帮我解决这个问题吗?

0 投票
1 回答
903 浏览

laravel - 从数据库配置 Laravel 调度器的时间

我有一个 Laravel 5.2 应用程序,现在我正在使用调度程序每 30 分钟运行一次脚本。但我想知道是否可以从数据库中检索该时间,我希望管理员用户从网页配置该时间,我在数据库中有该字段。但是我不确定调度程序是否可以从数据库中更新那个时间,那么,有可能吗?

另外,我设置:->sendOutputTo("/var/www/html/laravelProject/public/output")

将输出保存在一个名为 output 的文件中,但即使执行 cron 似乎也没有工作,我检查了 cron 日志文件,只显示没有安装 MTA,但我暂时不想要要发送电子邮件,我只想将输出保存在一个文件中,那么,我在那里缺少什么?

0 投票
1 回答
2560 浏览

laravel - Laravel Cron 运行两次

我正在使用laravel运行我的cron。问题是所有命令都运行了两次。当我在终端中添加ps -A时,它会显示两个输入。

我在 laravel 中有这个条目:

可能是什么问题呢?

0 投票
1 回答
3201 浏览

laravel - 未找到 PHP-CLI 命令

现在我刚刚从 siteground 和之前从 bluehost 搬到了 inmotion。我正在尝试在服务器上设置我的 laravel(lumen) 应用程序。我已经能够让其他一切正常工作,但我似乎无法正常工作的调度程序。

这是 cron 作业php -q /home/xxxxx/xxxxx/artisan schedule:run,它似乎运行良好,但无法执行 queue:work 命令。

我注意到在我之前的托管中,我必须Illuminate\Console\Scheduling\Scchedule.php像这样编辑文件:

由于某种原因,我不得不使用常规php命令不起作用php-cli,但是在我当前的主机上,每当我尝试手动使用 php-cli 命令并且我的所有 cron 作业在我的电子邮件中返回时,它都会显示“找不到命令”:

我想知道如何解决这个问题并让调度程序工作。

是的,我已经安装了 php。(v7.0) 是的,我已经安装了 php-cli 包。(v7.0) 我的 VPS 服务器使用 linox 操作系统。

0 投票
1 回答
2033 浏览

php - 在生产服务器上设置 Laravel 调度程序(Inmotion 托管)

我开始意识到,你如何为 laravel 调度程序编写 cron 因托管而异,因此在这种情况下文档是无用的。

我在以前的主机(siteground)上使用的相同代码似乎不适用于我当前的主机(inmotion)。

运行调度程序的 cron,我从我的 CPanel 设置的似乎工作:

我说它似乎有效,因为每当我的 cron 运行时我都会收到这封电子邮件:

现在上面的脚本似乎没有执行它只是挂起并且进程堆积起来吃我的内存,直到我的整个服务器崩溃。

所以我在这里很困惑,为什么php -q /home/xxxxx/xxxxx/artisan schedule:run执行但不知何故我的应用程序无法执行/usr/bin/php -q /home/xxxxx/xxxxx/artisan {command}

我用谷歌搜索了它并提出了一些建议,php-cliphp -qphp-cli 给了我一个command not found错误。

所以我要求对此提供支持,这就是他们所说的:

我不确定您如何能够在另一台主机上运行该命令,因为 php-cli 不是 php 命令行界面的命令。不幸的是,因为这不是一个有效的命令,我不确定我是否理解你通过运行它来完成什么。

php -q 是执行 php-cli 的选项,你应该为你的 crons 使用它;但是,只有当您正在执行的文件的编码正确时,它才会正确执行。

我已经做了 2 天了,我的问题是如何让我的 laravel 调度程序在没有任何错误的情况下执行,有没有人有在 inmotion 服务器或类似服务器上部署 laravel(lumen) 应用程序的经验?提前致谢。:)