问题标签 [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.
laravel - 有没有办法知道命令是手动触发还是从调度程序触发的?
如果从控制台执行命令以及何时由调度程序执行,我希望有不同的行为。有没有办法从命令 handle() 方法检查这个?
如果从 Laravel 5 的命令行运行,这不是 Detect 的副本
在“标记为重复”中,它回答了如何检测代码是否从控制台运行,但在我的情况下,手动触发和执行的 CRON 都是从控制台运行的,所以不能解决我的问题。
laravel - 是运行像 Laravel 调度程序这样的内部 cron 服务还是使用像 Easycron 这样的外部服务更好
如果服务器上每分钟运行一个 cron,它会不会给服务器带来很多负载并降低应用程序的整体性能。而且不仅仅是一个,而是多个这样的crons。现在使用 Laravel Scheduler 来做类似的事情。
如果我停止调度程序,而是使用像https://www.easycron.com这样的外部调度服务,它将运行 crons 并使用已设置的 http 方法访问 url。
调用路由到控制器函数,该函数将执行内部 cron 服务将具有的功能。
哪种方法更推荐/建议,为什么?
谢谢
laravel - 有没有办法在 laravel 中将参数传递给调度队列作业?
我需要在队列中运行一项工作,这需要很长时间(大约 2 小时)。它检查某些特定服务的可用性。因此,我没有将一项作业运行两个小时,它不断(每分钟)发出一个 API 请求,我想使用laravel 的调度来排队作业。我可以通过 Artisan 助手从任何地方调用调度程序:
这将派遣一份工作。但无法弄清楚,我如何在 kernel.php 中传递参数($arg1,$arg2,..),这是我的工作文件所需要的。
我试图在 schedule 方法中传递 args,但我认为这不是正确的方法。
laravel - Laravel CPanel Cron Job 命令不运行
我在 Apache/CPanel 共享服务器上为我的 Laravel 应用程序实现 Cron 作业时遇到问题。我有一个任务命令,只要我从命令行运行它就可以正常工作,并且每天调用时也可以正常工作,但它没有按“每天一次”计划运行。
只有当 Laravel 命令也被调用时,Cron Job 才能在每分钟调用时完美运行everyMinute()
,如下所示:
cron 调用
服务器时间表* * * * *
Laravel 命令:
问题是我真正想要工作的命令是每天一次,这不起作用。曾经每分钟运行良好的相同命令只是在每天一次时不会被调用,如下所示:
cron 调用
服务器时间表0 0 * * *
Laravel 命令:
或者
有什么问题吗?
谢谢!
laravel - 是否有可能确保 Laravel 作业实际上在轮次运行?
我想准确地在轮次执行某些工作,每 30 分钟一次,例如:
在Kernel.php
,我有这份工作...
...在中crontab
,我有这个命令...
显然一切都很好,但是如果我停止服务或重新启动服务器,那么这个指令,无论是 inKernel
还是 in Crontab
,都是正确的,例如,服务器或服务在“12:29”变得可用,我知道命令会从“分钟到分钟”执行,但是这些指令中的“某些东西”会知道下一次执行“应该”在 12:30 或现在的方式,将在 12:29 之后运行“30 分钟”,因此,12 :59?
虽然看起来无关紧要,但我的系统中有任务,需要在这些“回合时间”执行,因为任务“执行时间”决定了将执行什么。
php - Laravel Mailable 使用正确的模型,然后使用不正确的模型发送第二个不需要的电子邮件
我有一种情况,我正在建立一个 FTP 连接来收集数据,循环通过它注册新的或使用firstOrCreate
. 这是每 10 分钟在调度程序上运行一次,我使用 Laravel Horizon 来管理队列。
问题是,当我运行调度程序时,我发送了一份包含正确数据的查询和一份包含错误数据的查询(只有一封电子邮件)。
如果数据不正确但远非理想,我发现了一个使用急切加载和失败的小解决方法。
从下图中可以看出,创建了两个使用不同 ID 的作业。220 正确,29 错误。
当我记录正在循环的内容时,它只显示一项(220)。
我也无法使用命令重新创建错误,因此似乎(尽管未确认)仅在调度程序中发生。
有谁知道为什么会这样?
laravel - Laravel 安排推送通知并在必要时取消它
在我的带有 Laravel 的应用程序中,后端用户可以互相发送消息。
我想在新收件箱消息上向应用程序用户发送推送通知,但只有在用户尚未阅读此消息时我才需要发送消息。
所以我是这样看的
- 在发送的每条消息上,我需要在 1 分钟后安排 Laravel 通知
- 如果用户已经收到此消息,我需要取消此通知
如何关闭 Laravel 中的预定通知?这种方法现在可行吗?
类扩展通知
也许有更方便的方法来处理它?例如,每次发送推送,但如果它已经启动,以某种方式从应用程序中显示它?
laravel - Laravel 调度器任务动态
我已经在 laravel 中实现了任务计划程序。我的日程表
在这里我已经设置为11AM
每天。但我想通过用户仪表板在数据库中配置这个时间。
我怎么做?
我想这样做,
但是,这将继续每分钟击中我的数据库。我不想那样做。
我正在使用 Laravel 5.8;
有人可以帮忙吗?
提前致谢。
laravel - AWS 上的 Laravel 调度任务不起作用
我正在将我的 Laravel 应用程序部署到 ElasticBeanstalk 环境中。我正在尝试在服务器上的调度任务中运行命令。但它不起作用。这就是我所做的。
我在 Kernel.php 文件中安排我的命令如下。
我使用 Redis 作为我的缓存驱动程序,它正在工作。
然后我尝试了两种不同的方法。
第一种方法:使用 Laravel AWS Worker 包,https ://packagist.org/packages/dusterio/laravel-aws-worker
我按照文档中提到的说明安装了软件包。
然后,我将 CSRF 中间件中文档中提到的工作路由列入白名单。
然后我在项目的根文件夹中创建了一个 cron.yml 文件,其中包含以下内容。
然后我部署了我的应用程序。但是调度任务不起作用。所以我尝试了第二种方法如下。
第二种方法:使用 Crontab
我创建了一个包含以下内容的 .ebextensions/cronjob.config 文件。
然后我部署了我的应用程序。第二种方法也不起作用。我的配置中缺少什么以及如何使其正常工作?
这是我的另一个 cronjob.config 文件。
laravel - 运行任务调度,Laravel
如果我运行手动命令,我有一个可以工作的任务调度:php artisan word:weeklyUpdate
,但这必须在特定日期自动完成,所以我尝试运行* * * * * cd /var/www/html && php artisan schedule:run >> /dev/null 2>&1
,但我得到了Command 'app' not found, did you mean:
内核.php
更新:
我sudo php artisan schedule:run
得到"No scheduled commands are ready to run."