问题标签 [laravel-queue]

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 投票
1 回答
1014 浏览

laravel - Laravel 作业在 DEALLOCATE 上留下一个空闲的 postgresql 进程

每次在我的服务器上运行延迟作业时,我都可以在 postgreSQL 中看到一个新的空闲进程。运行select * from pg_stat_activity;我可以看到:

我试图理解,htop每次延迟的排队作业刚刚运行时,就会出现多行(以及 中的多一个进程)。

我的工作的最后一行是:

我可以在我的日志中看到这一点,所以一切都很好,但是之后它并没有清理干净。每次使用“DEALLOCATE pdo_stmt_00000xxx”时,我都有一个空闲进程。

我能做些什么来避免这个问题?这是什么原因造成的?

这是我的主管配置:

旁注:空闲进程在我运行时消失php artisan queue:restart

0 投票
1 回答
3818 浏览

laravel - Laravel 5.4 通过异步队列保存模型

因此,我正在尝试优化我的网站,并且在每次页面加载和退出时,我都会保存一个指标(页面停留时间、IP 地址等)以进行分析。然而,这些都是我服务器上相当大的瓶颈。查看运行整个函数所需的时间时,我的整个函数需要 ~1-2ms,然后保存到数据库需要 ~100-200ms。所以我的目标是运行我的函数,然后分派一个新工作,这将实际保存指标。这样,我的模型的所有保存都可以卸载到队列中。以下是我的工作副本

然后在我的控制器功能中,在我获取所有我需要的值之后运行它

这似乎运行但似乎没有做任何事情。我错过了什么吗?(编辑)这会做〜某事〜它只是将所有字段中的空记录保存到数据库中,就好像我创建了一个没有任何值的新指标一样。

  • 是否需要将队列传递给作业调度?
  • 我是否需要运行守护程序或类似的东西来实际处理队列中的内容?

我使用工匠 make:job 命令创建了作业

0 投票
1 回答
1849 浏览

laravel - Godaddy共享主机服务器(Linux)上Supervisor队列安装说明

有人可以分享有关在 Godaddy 共享托管服务器上安装主管队列的分步说明吗?我试图搜索很多,但找不到一个。

0 投票
2 回答
759 浏览

php - 使用 laravel 队列即时进行 Google 地理编码

我有大约 100 个 GPS 设备每 10 秒定期发送坐标。我的客户想要实时反向地理编码来查看他的车辆以及表格视图上的位置。在添加地理编码脚本之前,我已经设置了一个队列以将所有这些数据包保存在 db 中,如下所示

  1. 使用 websocket 接收 TCP IP 消息

    }

  2. 运行队列

    /li>

如果我在队列中包含此地理编码,我只是担心它是否适用于 1000 个并发设备,有没有更好的方法呢?

0 投票
1 回答
12056 浏览

laravel - 使用 laravel 队列作业处理时,卡住了

我在 5.3.31

所以它不能与

https://github.com/laravel/framework/issues/15179

在完成 300 份工作后,我得到:

这个错误不断重复

工作被卡住了,没有任何进展,也没有任何东西被移动到失败队列中

唯一的解决方案是我发现每隔几分钟通过 cronjob 停止主管工作人员,然后重新启动它们。这远非最佳

似乎整个服务器偶尔会很快消失。也许是内存问题?我的实时服务器有 1 GB 的内存。

0 投票
1 回答
1588 浏览

php - 带有队列的laravel中的android和ios推送通知

我正在使用davibennun/laravel-push-notification包向设备发送通知。但我想为我想使用的多个用户发送通知laravel queue。但我对此并不陌生,laravel这就是为什么不知道如何使用带有通知的队列。

我已经创建了迁移队列表并通过 php artisan make:job SendPushNotification命令创建了作业。

0 投票
1 回答
1470 浏览

php - 使用 laravel 读取 500,000 条记录的 excel 表

我有一张包含 50 万条记录的 Excel 表格。该表有两列,一列是电话号码,另一列是号码所有者的姓名。

我想阅读这些数字并将它们提交给发送批量短信的网络服务。我想使用 laravel 队列来处理工作表。

如果我使用多个工作人员,是否可以更快地读取文件并将其内容插入数据库,以及如何确保工作人员不会重新读取其他工作人员已经读取的行?

0 投票
1 回答
3377 浏览

laravel - Laravel 可排队通知错误:不允许序列化“闭包”

我创建了一个成功运行的邮件通知,但是在尝试对其进行排队时,我收到以下错误:

Uncaught Exception: Serialization of 'Closure' is not allowed in /vendor/laravel/framework/src/Illuminate/Queue/Queue.php:125

以下是我认为导致错误的代码:

我不确定它试图序列化的“关闭”来自哪里。我试着坚持->render()到最后,View::make但这似乎并没有什么不同。我相信这可能与view函数的功能有关,MailMessage但我不太确定。

再一次,此通知在未排队时可以完美运行。

任何帮助,将不胜感激。

0 投票
3 回答
1292 浏览

laravel - Laravel Queues (Database driver) + Cron job (task scheduler) stacked and are not being sent anymore after server crashed

I have configured a laravel queue to send emails, and it used to work fine sending the emails immediately.

I also used laravel task scheduler and configured the queue:listen to be executed every minute, resulting in the server crashing because cron job was calling the queue:work loop over and over again.... The site crashed. And it was the live site of the client, so the issue is pretty serious.

The hosting company modified my laravel cron job to run every 5 minutes. And since it crashed, all mails now stay in the database and the database queue doesn't work at all. I guess the process is not running at all.

I have these questions:

  • How do I execute the stacked queue records in the database?
  • How do I make the database queues work again?
  • How configure the cron job & laravel schedule to work properly.

NOTE: I want it working with the database driver and NOT with redis or sync or something else, so please stay focused on the database driver, thanks.

0 投票
1 回答
1538 浏览

php - 在不增加尝试次数的情况下释放排队的 Laravel 作业

有时我需要释放一个 Laravel 作业并让它重新加入队列。但是,这样做时,尝试次数会增加。它变为 2,如果您的队列工作器被限制为 1 次尝试,它将永远不会运行。

如何在不增加尝试的情况下释放?

要释放我正在使用:

在此行之前,我尝试了以下代码:

这不起作用。该payload物业不可用。它似乎存在于Job 类中。

Laravel 框架必须重置计数的代码在RetryCommand类中。如下:

但是我无法弄清楚如何$payload从我的工作课程中访问?

有没有更好的方法在不增加尝试次数的情况下释放工作?

我正在使用 Laravel 5.4 和 Redis 队列驱动程序。